#python #excel #automation #openpyxl
#python #excel #автоматизация #openpyxl
Вопрос:
Я написал этот код, но в строке _ = ws.cell(column == get_column_letter(cll[0][0]), row == (cll[0][1]), value == cll[1])
он возвращает ошибку, которую я не понимаю!
Вот код:
from openpyxl import Workbook as Wb
from openpyxl.utils import get_column_letter
import dill
def unpickle_exl(file_name, unpkld_file_name):
"""
unpickles a pickled excel file.
for file_name (current file name) suffix the name with .dll
likewise, for unpkld_file_name (file name to be made after unpickling) suffix your name with .xlsx
failiure to do so will result in an error.
please do not leave the second argument empty: please enter '' instead
"""
if file_name[len(file_name)-4:] != '.dll':
raise SyntaxError("file_name does not end with suffix .dll")
if unpkld_file_name != '' and unpkld_file_name[len(unpkld_file_name)-5:] != '.xlsx':
raise SyntaxError("unpkld_file_name does not end with suffix .xlsx")
if unpkld_file_name == '':
unpkld_file_name == unpkld_file_name.replace(".dll", ".xlsx")
try:
with open(file_name, 'rb') as d:
pkld_sprdsht = dill.load(d)
except OSError:
raise ReferenceError("File " str(filename) "does not exist.")
print(pkld_sprdsht)
wb = Wb()
for obj in pkld_sprdsht:
ws = wb.create_sheet()
for sht in obj:
for cll in sht:
_ = ws.cell(column == get_column_letter(cll[0][0]), row == (cll[0][1]), value == cll[1])
wb.save(filename = unpkld_file_name)
def test():
unpickle_exl('xlsx_to_dll test sprdsht.dll', 'xlsx_to_dll test sprdsht_copy.xlsx')
Я пытаюсь сохранить ячейки одну за другой (или, может быть, все сразу), но я не совсем понимаю суть _ = ...
.
ПРИМЕЧАНИЕ: Если вам это нужно, я могу добавить код травления, если это поможет.
Комментарии:
1. Особая благодарность @DapperDuck за помощь в моем проекте раньше!
2. Привет, @Leo, к сожалению, я не очень хорошо знаком с pickle, поэтому мне придется просмотреть документацию!
3. Какое исключение возникает? Объекты FWIW openpyxl не предназначены для обработки.
4. @CharlieChark, исключением была ошибка имени: имя ‘столбца’ не определено
5. Также я превратил электронную таблицу Excel во вложенные списки и кортежи, которые вы можете мариновать, поэтому я сомневаюсь, что список не будет маринован (если он не слишком большой)