无法在python中使用openpyxl写入包含合并单元格的Excel文件

时间:2019-09-26 08:47:19

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

TLDR:使用openpyxl将其作为工作簿阅读后,我无法将数据框写入具有预先存在的合并单元格的excel工作表中。

我需要写一个预先存在的Excel工作表来填写表格。表单是预先格式化的,因此我使用了openpyxl的{​​{1}}作为工作簿将其打开。然后使用pandas数据框完成表单填充。但是,excel工作表中所有合并的单元格都会阻止我对其进行写入。

我已经对此进行了谷歌搜索,但是找不到任何人试图写到包含合并单元格的工作表的案例。我发现open_workbook可以在写入文件时合并单元格,但是我不确定如何检测以前合并的单元格在哪里,也不确定如何将其与openpyxl集成。

这是我在写入excel工作表时用来保留格式的线程:How to write to an existing excel file without overwriting data (using pandas)?

仅出于演示目的,在此线程中,具有一对合并单元格的空白excel表就足够了。下面的代码将文件读取为工作簿,然后将其读取为数据帧,然后尝试将其写回。

xlsxwriter

它抛出此错误:

import pandas as pd
import openpyxl

df = pd.read_excel('example.xlsx')
wb = openpyxl.load_workbook('example.xlsx')

writer = pd.ExcelWriter('example2.xlsx', engine='openpyxl')
writer.book = wb
writer.sheets = dict((ws.title, ws) for ws in wb.worksheets)

df.to_excel(writer)

0 个答案:

没有答案