python和xlsx,使用Python和XlsxWri导出到xlsx

我正在使用XlsxWriter(1.0.2版)创建Excel文件,但当我导出并打开它时,会显示一个错误:“我们发现中的某些内容有问题文件名.xlsx. 你想让我们尽量恢复吗?如果您信任此工作簿的来源,请单击“是”。当我单击“是”按钮并在“关闭”之后,Excel正在打开,一切正常,因此我不明白为什么会显示此错误。我使用的是Python3.6.4、Django 2.0.1、Microsoft Office 2016、Windows 10和module IO的Python。我想知道如何解决这个问题。在

在注释后添加代码:def testError(request):

data = [["Goal 1", 0, 0], ["1", "Activity 1", "Alex, Peter"], ["1.1", "Activity 1.1", "Matthew"], ["1.1.1", "Activity 1.1.1", "Jhon"]]

output = io.BytesIO()

workbook = xlsxwriter.Workbook(output, {'in_memory': True})

worksheet = workbook.add_worksheet("Sheet1")

bold = workbook.add_format({'bold': True})

title = 'Example'

merge_format = workbook.add_format({

'bold': 1,

'align': 'left',

'valign': 'vcenter'})

worksheet.merge_range('A1:C1', title, merge_format)

a = 'B3:D'

a += str(len(data)+4)

worksheet.add_table(a, {'columns': [{'header': 'No'}, {'header': 'ACTIVITY'}, {'header': 'PARTAKERS'}], 'banded_rows': False, 'banded_columns': False, 'autofilter': 0})

border_format = workbook.add_format({

'border': 1,

'align': 'left',

'font_size': 10

})

merge_format = workbook.add_format({

'bold': 1,

'border': 1,

'align': 'left',

'valign': 'vcenter',

})

header_format = workbook.add_format({

'bold': 1,

'align': 'center',

'valign': 'vcenter',

})

tab = 'B3:D'

tab += str(len(data)+3)

worksheet.autofilter(tab)

it = 0

countElem = (len(data))

max_width_number = 0

max_width_name = 0

max_width_partaker = 0

for ite in range(3, countElem+3):

cel = 'B'

cel += str(ite+1)

if (data[it][0] != 0 and data[it][1] == 0 and data[it][2] == 0):

worksheet.write_row(cel, data[it])

iniCel = cel

finCel = 'D'

finCel += str(ite+1)

mergecel = iniCel+':'+finCel

worksheet.merge_range(mergecel, data[it][0], merge_format)

else:

i = 1

for d in data[it]:

worksheet.write_rich_string((str('B'+str(ite+1))), str(data[it][0]))

if len(str(data[it][0])) > max_width_number:

max_width_number = len(str(data[it][0]))

worksheet.write_rich_string((str('C'+str(ite+1))), str(data[it][1]))

if len(data[it][1]) > max_width_name:

max_width_name = len(data[it][1])

worksheet.write((str('D'+str(ite+1))), data[it][2])

if len(data[it][2]) > max_width_partaker:

max_width_partaker = len(data[it][2])

it = it+1

worksheet.conditional_format(a, {'type': 'no_blanks', 'format': border_format})

worksheet.conditional_format('B3:D3', {'type': 'no_blanks', 'format': header_format})

worksheet.set_column(1, 1, max(5, max_width_number))

worksheet.set_column(2, 2, max(20.57, max_width_name))

worksheet.set_column(3, 3, max(8.29, max_width_partaker))

workbook.close()

output.seek(0)

response = HttpResponse(output.read(), content_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")

response['Content-Disposition'] = str("attachment; filename= workbook_example.xlsx")

return response

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值