Невозможно сохранить значение в файле Excel из Python

Рейтинг: 0Ответов: 1Опубликовано: 22.03.2023

введите сюда описание изображенияТребуется взять значения из одного файла 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()

Ответы

▲ 2

Ну вам же прямым текстом подсказали - "Читаем документацию"!!!

  1. Почему вы читаете файл с помощью openpyxl, а пишете назад с помощью функций open и write из базового модуля????

  2. Почему вы пишете в текстовый файл (open по умолчанию пишет в режиме text mode??).

  3. Понятно, что несчастный 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") 

И файл с большим удовольствием открывается:

введите сюда описание изображения