【问题标题】:raise BadZipFile("File is not a zip file") zipfile.BadZipFile: File is not a zip fileraise BadZipFile("File is not a zip file") zipfile.BadZipFile: File is not a zip file
【发布时间】:2021-06-01 00:26:19
【问题描述】:

我正在尝试将数据附加到 Excel 工作表

如果我通过打开 excel 工作表并通过在其中键入 maully 插入数据然后保存并使用 loadworkbook 以正常方式创建一个 excel 工作表,它可以工作,但是当我使用“writer = pd.ExcelWriter(' demo.xlsx', engine='openpyxl')" 我得到错误。

import pandas as pd
from openpyxl import load_workbook
# new dataframe with same columns
df = pd.DataFrame({'Name': ['E','F','G','H'],
                   'Age': [100,70,40,60]})
writer = pd.ExcelWriter('demo.xlsx', engine='openpyxl')
# try to open an existing workbook
writer.book = load_workbook('demo.xlsx')
# copy existing sheets
writer.sheets = dict((ws.title, ws) for ws in writer.book.worksheets)
# read existing file
reader = pd.read_excel(r'demo.xlsx')
# write out the new sheet
df.to_excel(writer,index=False,header=False,startrow=len(reader)+1)

writer.close()

错误

Traceback (most recent call last):
  File "excel1.py", line 8, in <module>
    writer.book = load_workbook('demo.xlsx')
  File "/home/pi/.local/lib/python3.7/site-packages/openpyxl/reader/excel.py", line 316, in load_workbook
    data_only, keep_links)
  File "/home/pi/.local/lib/python3.7/site-packages/openpyxl/reader/excel.py", line 124, in __init__
    self.archive = _validate_archive(fn)
  File "/home/pi/.local/lib/python3.7/site-packages/openpyxl/reader/excel.py", line 96, in _validate_archive
    archive = ZipFile(filename, 'r')
  File "/usr/lib/python3.7/zipfile.py", line 1222, in __init__
    self._RealGetContents()
  File "/usr/lib/python3.7/zipfile.py", line 1289, in _RealGetContents
    raise BadZipFile("File is not a zip file")
zipfile.BadZipFile: File is not a zip file

【问题讨论】:

    标签: python python-3.x excel pandas numpy


    【解决方案1】:

    https://qastack.ru/programming/20219254/how-to-write-to-an-existing-excel-file-without-overwriting-data-using-pandas

    FILE_NAME = 'pattern.xlsx'
    
    wb = openpyxl.load_workbook(filename=FILE_NAME)
    writer = pd.ExcelWriter(FILE_NAME, engine='openpyxl')
    writer.book = wb
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-20
      • 1970-01-01
      相关资源
      最近更新 更多