【发布时间】:2020-05-29 14:05:28
【问题描述】:
我正在尝试为表格解析一个单词 (.docx),然后使用 xlsxwriter 将这些表格复制到 excel 中。 这是我的代码:
from docx.api import Document
import xlsxwriter
document = Document('/Users/xxx/Documents/xxx/Clauses Sample - Copy v1 - for merge.docx')
tables = document.tables
wb = xlsxwriter.Workbook('C:/Users/xxx/Documents/xxx/test clause retrieval.xlsx')
Sheet1 = wb.add_worksheet("Compliance")
index_row = 0
print(len(tables))
for table in document.tables:
data = []
keys = None
for i, row in enumerate(table.rows):
text = (cell.text for cell in row.cells)
if i == 0:
keys = tuple(text)
continue
row_data = dict(zip(keys, text))
data.append(row_data)
#print (data)
#big_data.append(data)
Sheet1.write(index_row,0, str(row_data))
index_row = index_row + 1
print(row_data)
wb.close()
这是我想要的输出:
但是,这是我的实际输出:
我知道我当前的输出会生成一个字符串列表。
无论如何,我可以使用 xlsxwriter 获得我想要的输出吗?非常感谢任何帮助
【问题讨论】:
-
当然可以。不要将一行中的所有内容都写入单个单元格 (
Sheet1.write(index_row,0, str(big_data))) -
@SiHa 嗨,谢谢您的评论!我尝试替换您的代码行,但它仍然产生相同的输出
-
嗯,是的,我的代码就是你的代码。我突出显示了问题所在的行,您将一行中的所有值写入列索引为 0 的单元格。您需要更改代码,以便使用每个
row_data项目增加此值 -
@SiHa 嗯...我明白你的意思,但是当我运行修改后的代码时,我仍然无法获得我想要的输出。请看我编辑的帖子!
标签: python python-3.x xlsxwriter python-docx