如何使用python代码在xlsxwriter中编写多列标题?

如何使用python代码在xlsxwriter中编写多列标题?,python,excel,pandas,xlsxwriter,Python,Excel,Pandas,Xlsxwriter,我正在研究一个从图像中提取表格并以excel格式重建表格的问题。通过应用一些DL技术和一些python代码,我得到了表的行和列列表。我正在使用xlsxwriter在python中创建excel文件。在我的表格中,有时会有一个单元格,它是多列的标题 我已经编写了下面的python代码来在excel中构造这个表,您可以看到我是如何得到列表行和列的 import xlsxwriter rows=[["a","b"],['1','2','3','4']] cols

我正在研究一个从图像中提取表格并以excel格式重建表格的问题。通过应用一些DL技术和一些python代码,我得到了表的行和列列表。我正在使用xlsxwriter在python中创建excel文件。在我的表格中,有时会有一个单元格,它是多列的标题

我已经编写了下面的python代码来在excel中构造这个表,您可以看到我是如何得到列表行和列的

import xlsxwriter
rows=[["a","b"],['1','2','3','4']]
cols=[['a','1'],['a','2'],['b','3'],['b','4']]
workbook = xlsxwriter.Workbook('table.xlsx')
worksheet = workbook.add_worksheet()
for i,row in enumerate(rows):
    for j,col in enumerate(cols):
        for el in row:
            if el in col:
                worksheet.write(i, j, el)
workbook.close()
运行此代码后,我得到如下表:,


如何使用xlsxwriter或任何其他方法在python中获得这样的结果?

这将给出所需的结果,但可能不是理想的解决方案,因为合并头的范围是硬编码的

从数据中拆分标题行可能有助于避免这种情况

导入xlsxwriter
行=[[“a”、“b”]、['1'、'2'、'3'、'4']]
cols=['a','1',['a','2',['b','3',['b','4']]
工作簿=xlsxwriter.workbook('table.xlsx')
工作表=工作簿。添加工作表()
对于i,枚举中的行(行):
对于j,枚举中的列(列):
对于行中的el:
如果el在col中:
工作表。书写(i、j、el)
中心格式=工作簿。添加格式({
“对齐”:“居中”,
'valign':'vcenter'})
工作表.合并范围(“A1:B1”,“a”,中心格式)
工作表.合并范围(“C1:D1”,“b”,中心格式)
工作簿.关闭()