xlwings vs pandas与多索引数据框本地导出:如何协调?

我将从一个图像开始,解释清楚与用pandas本地输出和xlwings输出多重索引的问题

在这里输入图像说明

本质上,我想用Xlwings完成的“ Pandas native”结果[多Xlwings正确导出为ex​​cel],因为我拥有XlWings可以执行的其他function,而其他function则不能(即使使用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那样进行格式化,参见这里 。

但是,从v0.7.2开始,xlwings还不支持粗体字体,合并单元格和单元格边框。 你可以通过回到pywin32(在Windows上)来解决这个问题,请看这里 。

实质上,您的自定义转换器需要重写write_value方法,请参见此处 。

在某种程度上把它build立到图书馆是有道理的,所以我已经开了一个问题,看这里 。