Я надеюсь, что у вас спокойной ночи / дня. Я на самом деле разрабатываю модуль с django, который извлекает файл xlsx с данными с моего сервера, и он работал для нескольких файлов. для этого процесса я запрашиваю данные с моего сервера, отфильтрованные по моей потребности, и помещаю их в pandas фрейм данных, затем вставляю их в шаблон xlsx с помощью Win32com и экспортирую на локальный драйвер, когда я пытался вчера, это сработало! !!. Но когда я попытался сделать выдержку из моего веб-приложения сегодня. У меня был неожиданный сюрприз, ошибка исключения:
com_error в / extract / extract_files (-2147352567, «Возникло исключение.», (0, Нет, Нет, Нет, 0, -2146827284), Нет)
поэтому я проверил эту ошибку и свою базу данных, чтобы выяснить, в чем проблема между файлами, созданными в последний день, и этой. на самом деле кажется, что у нового есть много текста со специальным символом, но это не так, как несколько символов, которые вызывают проблему (данные для этого файла его более 8000 строк). Вот как данные помещаются в мой шаблон.
df2 = pd.DataFrame(dict_datas_c2)
df1 = pd.DataFrame(dict_datas_c1)
df3 = pd.DataFrame(dict_datas_c3)
# convertion de l'objet en date
df1['Task End Date'] = pd.to_datetime(df1['Task End Date'])
df1['Previous Inspection Date'] = pd.to_datetime(df1['Previous Inspection Date'])
# conversion de date en str
df1['Task End Date'] = df1['Task End Date'].dt.strftime('%Y-%m-%d')
df1['Previous Inspection Date'] = df1['Previous Inspection Date'].dt.strftime('%Y-%m-%d')
df1['Previous Inspection Date'] = df1['Previous Inspection Date'].replace('NaT', '')
########################## CREATION PERSONALIZED PATH AND PATH FOR OUTPUT FROM TEMPLATE##########################
date_now = datetime.datetime.now()
date_str = date_now.strftime("%d%m%Y" + "_" + "%H" + "%M")
path = './SUPPORT DATA FILES/'
filename = 'ED_' + ed + '_' + ed_name + '_' + date_str + '.xlsx'
extract_filename = path + filename
template_file = #another path
copyfile(template_file, extract_filename)
########################## INSERTING DATAS INTO EXCELFILE ########################################################
pythoncom.CoInitialize()
# Open excel to access to template
excel = win32.GetObject(None, 'Excel.Application')
# def workbook
wb = excel.Workbooks.Open(extract_filename)
# each sheet
first_sheet_info=wb.Worksheets("NOTES")
second_sheet_C1=wb.Worksheets("C1. Scheduled Maintenance Tasks")
third_sheet_C2= wb.Worksheets("C2. Findings&Corrective Actions")
# inserting datas into each sheet
first_sheet_info.Range(first_sheet_info.Cells(2,1),# Cell to start the "paste"
first_sheet_info.Cells(1+len(df3.index)-1,
1+len(df3.columns)-1)
).Value = df3.values
second_sheet_C1.Range(second_sheet_C1.Cells(4,1),# Cell to start the "paste"
second_sheet_C1.Cells(4+len(df1.index)-1,
1+len(df1.columns)-1)
).Value = df1.values
third_sheet_C2.Range(third_sheet_C2.Cells(4,1),# Cell to start the "paste"
third_sheet_C2.Cells(4+len(df2.index)-1,
1+len(df2.columns)-1)
).Value = df2.values
# excel close and save
wb.Close(SaveChanges=1)
excel.Quit()
name_of_file = str(filename)
list_files.append(name_of_file)
Итак, лист, с которым я борюсь, это "third_sheet_C2", где в некоторых столбцах есть специальный символ:
Это код которые вставляют фрейм данных в шаблон с помощью win32com.client.
Пожалуйста, если у вас есть какие-либо идеи о том, как помочь мне или другому решению поместить df в шаблоны без используя win32com, скажите мне !! PS: я уже пытался использовать openpyxl, и он не работает.