我将从图像开始,因为它清楚地解释了通过熊猫本机导出和xlwings导出multindexes的问题。

excel - 具有多个索引数据框的xlwings vs pandas native 导出:如何协调?-LMLPHP

本质上,我希望使用Pandas完成'Xlwings本机'结果[正确将多索引正确导出到excel],因为我还有许多其他功能,而XlWings可以做到而其他却不能(即使使用ExcelWriter之类的,因为我必须清除工作表,并且我在同一工作表中插入了一个非python的东西,初始化时也会清除该内容)

使用的代码:

import pandas as pd
import numpy as np
import xlwings as xw
import os

arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],
           ['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']]

tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
s = pd.DataFrame(np.random.randn(8, 8), index=index).transpose()
print(s)

# EXPORT

filename = 'format_excel_export.xlsx'
s.to_excel(filename)

outpath = os.path.join(os.path.abspath(os.path.dirname(__file__)), filename)
os.path.sep = r'/'
wb = xw.Workbook(outpath)

xw.Range('Sheet1', 'A13').value = s

最佳答案

您可以实现一个自定义转换器,该转换器以与Pandas相同的方式对其进行格式化,请参见here

但是,从v0.7.2开始,xlwings本身还不支持粗体字体,合并单元格和单元格边框。您可以通过退回到pywin32(在Windows上)来解决此问题,请参见here

本质上,您的自定义转换器需要重写write_value方法,请参见here

在某个时候将其内置到库中确实很有意义,所以我提出了一个问题,请参见here

关于excel - 具有多个索引数据框的xlwings vs pandas native 导出:如何协调?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38305346/

10-12 20:10