我正在尝试使用以下代码将DataFrame添加到现有.xlsx文件上现有单元格下方的行:
book = load_workbook(r"C:\path\file_name.xlsx")
writer = pd.ExcelWriter(r"C:\path\file_name.xlsx", engine='openpyxl')
writer.book = book
writer.sheets = {ws.title: ws for ws in book.worksheets}
contract_df.to_excel(writer, startrow = 10, header = False,
sheet_name='UsrLeaseContract')
writer.save()
我设法添加数据,但是重新打开文件时出现以下错误:
已删除的部分:/xl/styles.xml发生XML错误的部分。 (样式)HRESULT 0x8000ffff第1行,第0列。已修复的记录:来自以下单元的信息 /xl/worksheets/sheet1.xml部分
和详细的XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<logFileName>error344800_01.xml </logFileName>
<summary>
Errors were detected in file 'C:path\file_name.xlsx'
</summary>
<removedParts><removedPart>Removed Part: /xl/styles.xml part with XML error. (Styles) HRESULT 0x8000ffff Line 1, column 0.
</removedPart>
</removedParts><repairedRecords><repairedRecord>Repaired Records: Cell information from /xl/worksheets/sheet1.xml part</repairedRecord>
</repairedRecords></recoveryLog>
答案 0 :(得分:1)
您是否尝试过直接使用openpyxl附加数据? 运行此代码,它运行就没有问题。另外,打开Exel文件时未收到任何警告。
from openpyxl import Workbook, load_workbook
from openpyxl.utils.dataframe import dataframe_to_rows
import pandas as pd
# list of strings
vegetables = ['potatoes', 'carrots', 'cabbage']
# Calling DataFrame constructor on list
df = pd.DataFrame(vegetables)
wb = load_workbook('file_name.xlsx')
ws = wb['UsrLeaseContract']
for r in dataframe_to_rows(df, index=True, header=True):
ws.append(r)
wb.save('file_name.xlsx')