【发布时间】:2016-12-20 12:00:54
【问题描述】:
Here is the Excel file in question:
上下文:我正在编写一个程序,它可以从 PDF 中提取值并将它们放入 Excel 文件的适当单元格中。
问题:我想编写一个函数,它以列值(例如 2014)和行值(例如“COGS”)作为参数并返回这两者相交的单元格引用(例如 2014 COGS 的“C3”) .
def find_correct_cell(year=2014, item='COGS'):
#do something similar to what the =match function in Excel does
return cell_reference #returns 'C3'
col_num = '=match(2014, A1:E1)'
row_num = '=match("COGS", A1:A5)'
但我想获取这些值,而不必随意写入那些随机的空单元格。另外,即使使用这种方法,当我读取这些单元格(F5 和 F6)时,它也会读取这些单元格中的公式,而不是 3 的面值。
感谢您的帮助。
【问题讨论】:
-
您是否有 Python 变量显示您尝试匹配的列表?例如,如果
dates = [2014, 2015, 2016]那么dates.index(2014)将给出0。但我们需要更多关于您的数据现在处于何种形式的信息才能回答这个问题。 -
什么意思?我只是想拿一个电子表格,找出某一年的列和某一项目的行,这样我就知道我应该在哪一年为该项目放置数据的位置。这样更有意义吗?
-
这将有助于更明确地了解数据的存储位置、组织方式以及您使用的工具,例如,“年份列在 Excel 工作簿的单元格 A1:E1 中,和产品列在单元格 A1:A5 中。我正在使用 openpyxl 读取和写入工作簿,我需要为行与指定产品匹配且列与指定年份匹配的单元格创建一个 'A1' 样式的引用。 (我必须在字里行间阅读才能意识到您正在使用 openpyxl,并且查找列表位于 Excel 工作簿中的特定范围内。)我在下面发布了一个答案。
-
(抱歉,我可能应该查看您的示例电子表格来弄清楚您的要求!这就是我在喝咖啡之前发表评论的结果!)