Faceless person 2023-10-29 18:32 采纳率: 33.3%
浏览 13

python中数据写入问题,用到pandas库

for循环用到如下代码进行写入excel操作,为什么报错IndexError: At least one sheet must be visible;但是我在另一台电脑上运行代码就不会报错,为什么,怎么解决

    # 创建一个新的 ExcelWriter 对象,并设置参数
    with pd.ExcelWriter(data_file, engine='openpyxl') as writer:
        writer.book = openpyxl.load_workbook(data_file)
        writer.sheets = dict((ws.title, ws) for ws in writer.book.worksheets)
        # 写入 "Sheet1",不包括索引和列名
        save_data.to_excel(writer, sheet_name='Sheet1', index=False)
        # 保存更改
        writer.save()

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-30 04:54
    关注

    【以下回答由 GPT 生成】

    问题原因: 在使用pandas库中的ExcelWriter进行数据写入时,当打开的Excel文件中所有的工作表都被隐藏时,会出现"IndexError: At least one sheet must be visible"错误。

    解决方案: 1. 确认你的Excel文件中的工作表是否都是可见的。如果有任何一个工作表被隐藏,可以解决这个问题的方法之一是将它们全部显示出来。 2. 如果你不想将所有的工作表都显示出来,可以采取以下方法来应对: - 在使用ExcelWriter之前,先将所有的工作表都复制到一个新的Excel文件中,确保它们可见。 ```python import openpyxl from openpyxl import load_workbook

     data_file = "data.xlsx"
     save_data = pd.DataFrame(...)  # 假设save_data是一个pandas DataFrame
    
     # 创建一个新的Excel文件,并将原始数据复制到新文件中
     new_data_file = "new_data.xlsx"
     wb = load_workbook(data_file)
     writer = pd.ExcelWriter(new_data_file, engine='openpyxl')
     writer.book = wb
     writer.save()
    
     # 重新打开新文件,并向其中写入数据
     with pd.ExcelWriter(new_data_file, engine='openpyxl') as writer:
         writer.book = openpyxl.load_workbook(new_data_file)
         writer.sheets = dict((ws.title, ws) for ws in writer.book.worksheets)
         save_data.to_excel(writer, sheet_name='Sheet1', index=False)
         writer.save()
     ```
    
    • 使用openpyxl库直接打开Excel文件,并将所有的工作表设置为可见,然后再使用pandas对数据进行写入。 ```python import openpyxl

      data_file = "data.xlsx" save_data = pd.DataFrame(...) # 假设save_data是一个pandas DataFrame

      # 打开Excel文件,并设置所有的工作表为可见 wb = openpyxl.load_workbook(data_file) for ws in wb.worksheets: ws.sheet_state = "visible" wb.save(data_file)

      # 使用pandas对数据进行写入 with pd.ExcelWriter(data_file, engine='openpyxl') as writer: writer.book = openpyxl.load_workbook(data_file) writer.sheets = dict((ws.title, ws) for ws in writer.book.worksheets) save_data.to_excel(writer, sheet_name='Sheet1', index=False) writer.save() ``` 请注意,以上的解决方案中的代码块是给出的伪代码,需要根据实际情况进行相应的修改。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 10月29日

悬赏问题

  • ¥20 ESP32使用MicroPyhon开发,怎么获取485温湿度的值,温湿度计使用的鞋子是Modbus RTU
  • ¥50 苹果MGIE项目部署缺少emb权重
  • ¥15 采用ansys进行机翼在特定路径下的打孔过程中的受力分析
  • ¥15 单片机adb主机连接手机,usb调试密钥无法保存
  • ¥15 已知X和Y有以下关系,求X和Y的关系式
  • ¥15 net core 同时编辑怎么防止数据多保存了
  • ¥15 matlab做ba模型让其在ba和er规则下生长
  • ¥15 请问Quartus的Verilog代码怎么写?
  • ¥100 Mac 版foxmail 收邮件问题
  • ¥15 QWebEngineView