Как я могу создать файл xlsx, для которого я могу указать все следующие функции, используя xlsxwriter?
- Настраиваемое имя для каждого листа (
add_worksheet
) - Спецификация c область печати (
print_area
) - Повторение первого ряда листа на каждой напечатанной странице (
repeat_rows
)
Я пытался использовать (что-то похожее на ) следующий код:
import xlsxwriter
import pandas as pd
from random import randint
df = pd.DataFrame({'A': [randint(2000, 2001) for x in range(150)],
'B': [randint(300, 400) for x in range(150)]})
workbook = xlsxwriter.Workbook('xlsxwriter-problem.xlsx')
main_format = workbook.add_format({'border': 1})
for name, group in df.groupby('A'):
worksheet = workbook.add_worksheet(str(name))
worksheet.write(0, 0, 'B')
for i in range(1, len(group.index)):
worksheet.write(i, 0, group.iloc[i,1])
worksheet.set_column(0, 0, None, main_format)
worksheet.print_area('A1:A95')
worksheet.repeat_rows(0)
workbook.close()
Однако, когда я открываю файл в LibreOffice Cal c, я замечаю, что последние две строки внутри l oop, похоже, игнорируются, и я получаю это нежелательное поведение .
Через некоторое время я обнаружил, что эти две строки выдают желаемое поведение , если я использую имена листов по умолчанию, то есть, если я задаю
worksheet = workbook.add_worksheet()
внутри l oop.
Невозможно сохранить имя пользовательского листа и другие функции?