python - Python-Docx 将表格导出到 Word 表格
问题描述
我正在尝试使用 python-docx 将具有动态行(数量取决于用户)的表导出到 Microsoft Word 表这是我的 docx 代码:
doc.add_heading("Findings Summary", level=1)
table_findings = doc.add_table(rows=0, cols=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'ID'
hdr_cells[1].text = 'Description'
hdr_cells[2].text = 'Risk'
test_id1 = self.InformationOverviewTestIDLineEdit.text()
for row_index, row_data in enumerate(c.execute('SELECT Summary_Findings_Name, Summary_Findings_Desc, Summary_Findings_Risk FROM Findings_Summaries WHERE Test_ID=?', [test_id1])):
row_cells = table_findings.add_row().cells
row_cells[0].text = (row_data)
row_cells[1].text = (row_data)
row_cells[2].text = (row_data)
doc.add_page_break()
这只是我需要工作的代码的一部分,我让其余的工作完美无缺。那是我的第一次尝试,我认为这样做会更容易。本质上,我想循环数据库以查找 Test_ID 并从包含搜索的 Test_ID 的数据库中提取所有行。这个 Test_ID 将显示在我的 PyQT5 代码的行编辑中。它是我正在努力解决的循环部分。如果我按原样运行该代码,它将返回此错误:
元组索引超出范围
line 1080, in Extracting_Report
hdr_cells1[2].text = 'Risk'
IndexError: tuple index out of range
编辑:我设法找到了问题,这是新代码:
doc.add_heading("Findings Summary", level=1)
table_findings = doc.add_table(rows=1, cols=3)
hdr_cells1 = table_findings.rows[0].cells
hdr_cells1[0].text = 'ID'
hdr_cells1[1].text = 'Description'
hdr_cells1[2].text = 'Risk'
test_id1 = self.InformationOverviewTestIDLineEdit.text()
for row_index, row_data in enumerate(c.execute('SELECT Summary_Findings_Name, Summary_Findings_Desc, Summary_Findings_Risk FROM Findings_Summaries WHERE Test_ID=?', [test_id1])):
row_cells = table_findings.add_row().cells
row_cells[0].text = (row_data)
row_cells[1].text = (row_data)
row_cells[2].text = (row_data)
print(row_data)
但是,现在它打印 row_data 但不创建文档,它应该考虑如果我删除这个代码块它会创建一个 docx 文档
解决方案
零行表没有单元格。尝试:
table_findings = doc.add_table(rows=1, cols=3)
反而。
推荐阅读
- php - PHP 检查 ifempty 和 isset 仍然失败为 0
- javascript - .focus() 不会触发使用 JQuery 添加到 DOM 的元素
- r - R:删除连接第一个和最后一个点的线
- node.js - 从 Keythereum 钱包中提取 ETH
- python - 执行 python manage.py makemigrastions 时出错
- ruby-on-rails - Gem 在 IRB 中有效,但在 Rails 控制台中无效
- angular - Angular fileReplacements 不会替换环境文件
- c - 如何更有效地打印具有否定行的矩阵
- r - 对 df 进行子集化并删除行子集化 R
- javascript - 如何将对象中键值的双引号转换为单引号?