我正在从一个完全有效的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 文件中。我使用了 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 文件,但作者不断从文件中删除现有工作表
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)。在只有一个“锯”之后
这可能是一个简单的公式修复,但似乎找不到任何有效的方法。任何帮助将不胜感激
谢谢
使用最新的软件包版本: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)