Как изменить тип содержимого с CSV на XLSX
Мой текущий код отлично печатает данные моего файла в CSV, однако мне нужно, чтобы эти данные были в формате XLSX.
Кто-нибудь знает, как я могу сделать это, не изменяя мой код слишком сильно, вот что у меня сейчас есть :
Views.py
# Starting CSV
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="' + complexName + '"Age Analysis.csv"'
writer = csv.writer(response)
writer.writerow(['Prepared By : Atout(PTY) ltd'])
writer.writerow(['Customer Age Analysis for Monthly Customers as at 31/10/21'])
writer.writerow(
['Account', ' ', ' ', '120+ Days', '90 Days', '60 Days', '30 days', 'Current', 'Total', '', 'Name', 'E-mail'])
for x in ageSelect:
writer.writerow([
x["Account"], '*', ' ',
'0',
'0 ',
'0',
'0',
x["Balance"],
x["Balance"],
'',
x["Name"],
x["E-mail"]
])
for x in XtotalCurent:
writer.writerow(['Totals:', ' ', ' ', '120 Days', '90 Days', '60 Days', '30 days', x, x])
writer.writerow(['PERCENTAGE :', ' ', ' ', '120 Days', '90 Days', '60 Days', '30 days', 'Current', '100%'])
writer.writerow(['GRAND TOTAL :', ' ', ' ', '', '', '', '', '', x])
return response
Ошибка при использовании xlsx writer :
AttributeError at /accConnect/AgeAnalysisCSV/12 'NoneType' object has нет атрибута 'group'
Код при использовании xlsx writer:
# Starting CSV
output = StringIO()
workbook = xlsxwriter.Workbook(output)
worksheet = workbook.add_worksheet()
worksheet.write_row('Prepared By : Atout(PTY) ltd')
worksheet.write_row('Customer Age Analysis for Monthly Customers as at 31/10/21')
worksheet.write_row(
'Account', ' ', ' ', '120+ Days', '90 Days', '60 Days', '30 days', 'Current', 'Total', '', 'Name', 'E-mail')
for x in ageSelect:
worksheet.write_row(
x["Account"], '*', ' ',
'0',
'0 ',
'0',
'0',
x["Balance"],
x["Balance"],
'',
x["Name"],
x["E-mail"]
)
for x in XtotalCurent:
worksheet.write_row('Totals:', ' ', ' ', '120 Days', '90 Days', '60 Days', '30 days', x, x)
worksheet.write_row('PERCENTAGE :', ' ', ' ', '120 Days', '90 Days', '60 Days', '30 days', 'Current', '100%')
worksheet.write_row('GRAND TOTAL :', ' ', ' ', '', '', '', '', '', x)
workbook.close()
response = HttpResponse(content_type='application/vnd.ms-excel')
response['Content-Disposition'] = 'attachment; filename="' + complexName + '"Age Analysis.xlsx"'
response.write(output.getvalue())
return response