Невозможно сохранить значение в файле Excel из Python
Требуется взять значения из одного файла Excel, преобразовать, а затем записать в другой файл Excel Получилось получить значения из исходного файла, преобразовать их, но сохранить значения в файл не удается, подскажите пожалуйста как правильно сохранить полученные значения в файл после использования, файл в котором нужно сохранить данные становится битым
import openpyxl as op
def FuncAlex(CodeNum: str):
if CodeNum[0] == '"':
return (CodeNum[1:-1][0:15])
else:
return CodeNum[0:21]
file = 'File1.xlsx'
wb = op.load_workbook(file, read_only= True)
sheet = wb.active
max_row = sheet.max_row
#print(max_row)
res = []
for i in range(1, max_row):
temp = str(sheet.cell(row = i, column = 1).value)
res.append(FuncAlex(temp))
print(res)
file_res = open("file2.xlsx", "w")
file_res.write(str(res))
file_res.close()
Ответы (1 шт):
Ну вам же прямым текстом подсказали - "Читаем документацию"!!!
Почему вы читаете файл с помощью openpyxl, а пишете назад с помощью функций open и write из базового модуля????
Почему вы пишете в текстовый файл (open по умолчанию пишет в режиме text mode??).
Понятно, что несчастный EXCEL увидев файл xlsx и с радостью залезая туда, с огромным удивлением обнаруживает там не xlsx, а текстовый файл, о чем с отвращением вам сообщает.
Не буду за вас делать ваше домашнее задание. Просто покажу, как пишут в xlsx файл с помощью библиотеки openpyxl. А уж под свою задачу тюнингуйте этот скрипт самостоятельно:
import openpyxl as op
wb = op.Workbook()
sheet = wb.active
c1 = sheet.cell(row = 1, column = 1)
c1.value = "Прежде чем задать вопрос"
c2 = sheet.cell(row= 1 , column = 2)
c2.value = "Читаем, черт побери, документацию!!!!!!"
sheet.column_dimensions['A'].width = 25
sheet.column_dimensions['B'].width = 40
wb.save("file2.xlsx")
И файл с большим удовольствием открывается:
