源码
import pandas as pd
def create_excel_xls(path):
writer = pd.ExcelWriter(path)
writer.save()
create_excel_xls('/Users/bujinshidemao/Desktop/testExcel.xlsx')
报错
Traceback (most recent call last):
File "/Users/bujinshidemao/Project/PyCharmProject/TestProject/main.py", line 41, in <module>
create_excel_xls('/Users/bujinshidemao/Desktop/testExcel.xlsx')
File "/Users/bujinshidemao/Project/PyCharmProject/TestProject/main.py", line 38, in create_excel_xls
writer.save()
File "/Users/bujinshidemao/Project/PyCharmProject/TestProject/venv/lib/python3.9/site-packages/pandas/io/excel/_openpyxl.py", line 43, in save
return self.book.save(self.path)
File "/Users/bujinshidemao/Project/PyCharmProject/TestProject/venv/lib/python3.9/site-packages/openpyxl/workbook/workbook.py", line 392, in save
save_workbook(self, filename)
File "/Users/bujinshidemao/Project/PyCharmProject/TestProject/venv/lib/python3.9/site-packages/openpyxl/writer/excel.py", line 293, in save_workbook
writer.save()
File "/Users/bujinshidemao/Project/PyCharmProject/TestProject/venv/lib/python3.9/site-packages/openpyxl/writer/excel.py", line 275, in save
self.write_data()
File "/Users/bujinshidemao/Project/PyCharmProject/TestProject/venv/lib/python3.9/site-packages/openpyxl/writer/excel.py", line 89, in write_data
archive.writestr(ARC_WORKBOOK, writer.write())
File "/Users/bujinshidemao/Project/PyCharmProject/TestProject/venv/lib/python3.9/site-packages/openpyxl/workbook/_writer.py", line 148, in write
self.write_views()
File "/Users/bujinshidemao/Project/PyCharmProject/TestProject/venv/lib/python3.9/site-packages/openpyxl/workbook/_writer.py", line 135, in write_views
active = get_active_sheet(self.wb)
File "/Users/bujinshidemao/Project/PyCharmProject/TestProject/venv/lib/python3.9/site-packages/openpyxl/workbook/_writer.py", line 33, in get_active_sheet
raise IndexError("At least one sheet must be visible")
IndexError: At least one sheet must be visible
错误原因
该代码仅为生成文件,但是对于文件的格式之类的未有定义,因此,需要使用DataFrame
进行书写,把参数置为空,则写入后生成的是个空白的文件(但是有什么文件格式之类的了)
解决方案
import pandas as pd
def create_excel_xls(path):
data_df = pd.DataFrame()
writer = pd.ExcelWriter(path)
data_df.to_excel(writer)
writer.save()
create_excel_xls('/Users/bujinshidemao/Desktop/testExcel.xlsx')