相关疑难解决方法(0)

使用 Pandas 写入时文件损坏

我正在从一个完全有效的xlsx文件中读取数据并使用 Python 3.5 中的 Pandas 处理它。最后,我使用以下命令将最终数据帧写入 Excel 文件:

writer = pd.ExcelWriter(os.path.join(DATA_DIR, 'Data.xlsx'), 
engine='xlsxwriter', options={'strings_to_urls': False})
manual_labelling_data.to_excel(writer, 'Sheet_A', index=False)
writer.save()
Run Code Online (Sandbox Code Playgroud)

在尝试打开时Data.xlsx,我收到错误:我们发现“Data.xlsx”中的某些内容有问题......继续将文件加载到 Excel 并提供信息:已删除记录:来自 /xl/worksheets/sheet1 的公式。 xml部分

我无法找出问题所在。

excel python-3.x pandas

4
推荐指数
1
解决办法
4806
查看次数

合法 .xlsx 文件上的 openpyxl load_workbook() 会导致 zipfile.BadZipFile 错误

我想做的是将数据帧数据附加到现有的合法 Excel 文件中。我使用了 openpyxl 中的 load_workbook() 函数,但它系统地返回错误。这是一些在我的机器上崩溃的代码:

from openpyxl import load_workbook

report_path = root_folder + '\\log_report.xlsx'
writer = pd.ExcelWriter(report_path, engine='openpyxl')
writer.book = load_workbook(report_path)
writer.close()
Run Code Online (Sandbox Code Playgroud)

这里,log_report.xlsx已经存在并且是通过pandas .to_excel()创建的。在使用 openpyxl load_workbook() 打开之前,可以打开它、编辑它并执行 MS Excel 允许的任何操作。我收到以下错误返回:

Traceback (most recent call last):
  File "D:/failsafe_counter/main.py", line 419, in <module>
    writer.book = load_workbook(report_path)
  File "D:\failsafe_counter\venv\lib\site-packages\openpyxl\reader\excel.py", line 315, in load_workbook
    reader = ExcelReader(filename, read_only, keep_vba,
  File "D:\failsafe_counter\venv\lib\site-packages\openpyxl\reader\excel.py", line 124, in __init__
    self.archive = _validate_archive(fn)
  File "D:\failsafe_counter\venv\lib\site-packages\openpyxl\reader\excel.py", line 96, in _validate_archive
    archive = ZipFile(filename, 'r')
  File "C:\Users\XXXX\AppData\Local\Programs\Python\Python38-32\lib\zipfile.py", line 1269, …
Run Code Online (Sandbox Code Playgroud)

python excel openpyxl

4
推荐指数
1
解决办法
1万
查看次数

大熊猫写入Excel工作表删除文件中的其他工作表

我有简单的代码可以将 python 数据框导出到带有工作表的现有 excel 文件,但作者不断从文件中删除现有工作表

read = pd.ExcelFile('Saw_Load.xlsx')
print(read.sheet_names)
writer = pd.ExcelWriter('Saw_Load.xlsx')
result.to_excel(writer,'saw', index = False)
read2 = pd.ExcelFile('Saw_Load.xlsx')
print(read2.sheet_names)
writer.save()
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出

['saw', 'Pivot']
['saw']
Run Code Online (Sandbox Code Playgroud)

我们可以清楚地看到在使用 to_excel 函数之前有 2 张纸(saw,Pivot)。在只有一个“锯”之后

这可能是一个简单的公式修复,但似乎找不到任何有效的方法。任何帮助将不胜感激

谢谢

excel python-3.x pandas pandas-groupby

3
推荐指数
1
解决办法
9866
查看次数

将 pandas 数据帧导出到 xlsx:处理 python 3.9 上的 openpyxl 问题

使用最新的软件包版本:openpyxl:3.0.6 | 熊猫:1.2.3 |蟒蛇:3.9

在将上面的软件包更新到报告的最新版本之前,下面的功能运行良好。

现在它会引发错误:“zipfile.BadZipFile:文件不是 zip 文件”。

这样的功能确实很有用,并且很高兴知道它是否可以修复以使其正常工作。

下面的函数可以直接运行,只需将“pathExport”替换为您的导出目录进行测试即可。

    def append_df_to_excel(filename, df, sheet_name='Sheet1', startrow=None,
                           truncate_sheet=False, 
                           **to_excel_kwargs):
        """
        Append a DataFrame [df] to existing Excel file [filename]
        into [sheet_name] Sheet.
        If [filename] doesn't exist, then this function will create it.
    
        Parameters:
          filename : File path or existing ExcelWriter
                     (Example: '/path/to/file.xlsx')
          df : dataframe to save to workbook
          sheet_name : Name of sheet which will contain DataFrame.
                       (default: 'Sheet1')
          startrow : upper left cell row to dump data frame.
                     Per default …
Run Code Online (Sandbox Code Playgroud)

xlsx pandas openpyxl python-3.9

2
推荐指数
1
解决办法
3万
查看次数