【发布时间】:2022-01-16 11:49:18
【问题描述】:
我正在尝试使用 Openpyxl 在一个 Excel 工作簿中搜索数据,并将其写入另一个(预先存在的)Excel 工作簿。目标是这样的:
- 在 Workbook1 中搜索包含单词“Sales”的行(有多个这样的行)
- 将这些行的 E 列中的数据(数值)复制到 Workbook2 中的特定单元格(第二个工作表,单元格 C3)。
我下面的代码似乎运行没有任何错误,但是,当我打开 Workbook 2 时,没有数据写入其中。有谁知道为什么/可以建议修复?
# importing openpyxl module
import openpyxl as xl
import sys
# opening the source excel file
filename ="C:\\Users\\hadam\\Documents\\Testing\\TB1.xlsx"
wb1 = xl.load_workbook(filename)
ws1 = wb1.worksheets[0]
# opening the destination excel file
filename1 = "C:\\Users\\hadam\\Documents\\Testing\\comp2.xlsx"
wb2 = xl.load_workbook(filename1)
ws2 = wb2.worksheets[1]
for sheet in wb1.worksheets:
for row in sheet.iter_rows():
for cell in row:
try:
if 'Sale' in cell.value:
# reading cell value from source excel file
c = ws1.cell(row=cell.row, column=4).value
# writing the read value to destination excel file
ws2.cell(row=2, column=2).value = c.value
except (AttributeError, TypeError):
continue
# saving the destination excel file
wb2.save(str(filename1))
sys.exit()
其他信息:
- 具体来说,我正在搜索的文本字符串 ('Sales') 位于 Workbook1 的 A 列中。这不是完全匹配,但例如给定单元格包含“5301 销售 - 国内 - type4”。因此,我想将 E 列中包含 A 列中“销售额”的数值汇总到 Workbook2 中的单个单元格中。
- 我对 Python/编码非常陌生。但是,我的环境似乎设置得很好,例如我已经测试了一个代码(从网络上的其他地方复制),它可以将一个电子表格中的所有数据写入另一个预先存在的电子表格)。我在 Python 3 模式和 openpyxl 模块中使用 Mu 编辑器。
【问题讨论】:
标签: python excel cell openpyxl rows