@toha_supchik

Openpyxl некорректно работает wb.active и как осуществить запись в страницу файла excel?

1)программа для учета имущества на складе, не знаю как добавлять эллемент в excel по строчно (одна колонка - размер, другая количество), т.е я не понимаю как правильно открыть файл и пройти до пустой ячейки (или какой-то не пустой для удаления) и изменить в них значение. ПРИМЕР КАК ХРАНИТСЯ В EXCEL В ЗАКРЕПЛЕННЫХ ФОТОГРАФИЯХ
если не сложно напишите алгоритм, или хотя бы на словах, как сделать и что использовать (методом тыка не получается XD)
2)И еще не правильно работает функция wb.active, а именно выдает не правильно активный лист
3)После сохранения файла в формате .xlsx он работает только в программе, а не открывается вне программы ( пишет, что файл поврежден ) при сохранении в .xls он не будет работать в программе (библиотека работает только с форматом .xlsx)

import sys
from PySide2 import QtCore, QtGui, QtWidgets
from proga import Ui_delitordobavit

# Create app
app = QtWidgets.QApplication(sys.argv)

# init
Dialog = QtWidgets.QDialog()
ui = Ui_delitordobavit()
ui.setupUi(Dialog)
Dialog.show()
#Hook logic

from openpyxl import load_workbook
wb = load_workbook("C:\\Users\\USER\\PycharmProjects\\pythonProject6\\list.xlsx")
ws = wb.active
wb.active = 0
print(wb.sheetnames)
"""del wb['каски1']
print(wb.sheetnames)
wb.save("C:\\Users\\USER\\PycharmProjects\\pythonProject6\\list.xlsx")"""
"""функция для вывода всех эллементов страницы"""
def text_output():
zopa = ""
print(wb.active)
for row in ws.values:
zopa += str(row) + "" + "\n"
print(zopa)
ui.textEdit.setText(zopa)
"""СЧИТЫВАЕМ ТЕКСТ ИЗ Х**НИ ПО КОТОРОЙ БУДЕМ ИСКАТЬ ТОВАР В КАТАЛОГЕ И ВЫВОДИТЬ В textEdit"""
"""вывод значений товаров по размерам и количеству на ws.active"""
def text_input():
text = ui.textEdit.toPlainText()
sheets = wb.sheetnames
i = 0
for sheet in sheets:
i += 1
if text == sheet:
wb.active = i - 1
print('он есть')
print(wb.active)
text_output()
break
else:
ui.textEdit.setText("Данного товара нет на складе, но вы можете добавить его")
print("такого товара нет на складе")
"""функция для удаления и добавления эллементов"""
def del_or_dob():
if ui.comboBox.currentText() == "добавить":
print("dobavit")
tovar = ui.tovarfordelitdobavit.toPlainText()
sheets = wb.sheetnames
i = 0
for sheet in sheets:
i += 1
if tovar == sheet:
wb.active = i - 1
size = ui.sizeandkolvo.toPlainText()
print('он уже есть')
wb.save("C:\\Users\\USER\\PycharmProjects\\pythonProject6\\list.xlsx")
break
else:
wb.create_sheet(tovar)
print(wb.sheetnames)
wb.template = True
wb.save("C:\\Users\\USER\\PycharmProjects\\pythonProject6\\list.xls")
"""Х** ЗНАЕТ КАК СОХРАНИТЬ ЧТОБЫ ОН НЕ КРАШИЛСЯ!!!!!"""
break
else:
print("del")
ui.watchhowmuch.clicked.connect(text_input)
"""КЛАЦАЕМ КНОПКУ И СЧИТЫВАЕМ ТЕКСТ ИЗ ОКНА ФУНКЦИЯ text_input()"""
ui.delitdobavit.clicked.connect(del_or_dob)
# Main Loop
sys.exit(app.exec_())
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
много кода

задай плиз вопрос на 5 строчек с ЧТО именно у тебя не получается
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы