为什么excel提示没有关

来源:4-4 Excel写入图表

慕妹2590417

2021-08-18 22:04:09

#coding:utf-8

import xlsxwriter, xlrd

#excel = xlsxwriter.Workbook('write.xlsx')
#book = excel.add_worksheet('study')

#title = ['姓名', '性别', '年龄', '成绩', '等级']

#for index, data in enumerate(title):
#book.write(0, index, data)
#excel.close()

def read():
excel = xlrd.open_workbook('study.xlsx')
result=[]
book = excel.sheet_by_name('学生手册')
for i in book.get_rows():
content = []
for j in i:
content.append(j.value)
result.append(content)
return result


def write(content):
excel = xlsxwriter.Workbook('write.xlsx')
book = excel.add_worksheet('study')

for index, data in enumerate(content):
print(data)
for sub_index, sub_data in enumerate(data):
book.write(index, sub_index,sub_data)
excel.close()

book1=excel.add_worksheet('学生等级')
data=[
['优秀', '良好', '中', '差'],
[1100, 2000, 1000, 900]
]

book1.write_column('A1', data[0])
book1.write_column('B1', data[1])

chart= excel.add_chart({'type':'column'})
chart.add_series({
'categories': '=学生等级!$A1:$A4',
'values': '=学生等级!$B1:$B4',
'name': '成绩占比'
})
chart.set_title({'name': '成绩占比图表'})
book1.insert_chart('A10', chart)
excel.close()

if __name__ == '__main__':
result = read()
write(result)

问题描述:

D:\python\pythonProject\lib\site-packages\xlsxwriter\workbook.py:338: UserWarning: Calling close() on already closed file.
warn("Calling close() on already closed file.")

这是什么原因

写回答

1回答

好帮手慕念

2021-08-19

同学,你好!

1、报错显示对已经关闭的文件调用close(),提示("在已经关闭的文件上调用close() ")

2、是因为在write()方法代码中,和for循环同一层次的代码是excel.close()即关闭了excel,注释掉即可,可参考下图

http://img.mukewang.com/climg/611dc53c09e55a0206130528.jpg

祝学习愉快!

0

0 学习 · 4469 问题

查看课程