【问题标题】:OpenPyxl need help editing sheetOpenPyxl 需要帮助编辑工作表
【发布时间】:2021-04-21 15:53:21
【问题描述】:

我正在尝试从 Excel 工作表中提取数据:到目前为止一切都很好,但我正在尝试找到一种更好的方法来实现字典的值,这有点无聊,我'我正在努力寻找一种在一行中完成它的方法

这是我目前得到的:

import openpyxl

Stocks = openpyxl.load_workbook("D:\Coding\Projects\Stocks\Stocks.xlsx")

BR_NOW = Stocks["BR_NOW"]
PT_NOW = Stocks["PT_NOW"]

BR_Last = {}
PT_Last = {}

BR_Last[BR_NOW["A1"].value]=[BR_NOW["B1"].value]
BR_Last[BR_NOW["A2"].value]=[BR_NOW["B2"].value]
BR_Last[BR_NOW["A3"].value]=[BR_NOW["B3"].value]
BR_Last[BR_NOW["A4"].value]=[BR_NOW["B4"].value]
BR_Last[BR_NOW["A5"].value]=[BR_NOW["B5"].value]
BR_Last[BR_NOW["A6"].value]=[BR_NOW["B6"].value]
BR_Last[BR_NOW["A7"].value]=[BR_NOW["B7"].value]
BR_Last[BR_NOW["A8"].value]=[BR_NOW["B8"].value]

但它一直持续到“A101”

最好的方法是什么?

在此先感谢

编辑:

谢谢大家,

现在我正在尝试从字典中插入 Excel 值,但前提是这些值小于已插入这些单元格中的值(所以我有股市的 Last、Min 和 Max 值)

我想出了这个:

for i in range(1,83):
    if Stocks["BR_MIN"["B"+str(i)].value] <= BR_Last.value:
        Stocks["BR_MIN"["B"+str(i)].value] = BR_Last.value

我做错了什么?它说:TypeError:字符串索引必须是整数

在此先感谢

【问题讨论】:

  • edit标题是关于这个问题的,而不是请求善意。

标签: python excel dictionary openpyxl


【解决方案1】:

如何从 1 到 101 循环,然后动态引用单元格地址?

像这样?

import openpyxl

Stocks = openpyxl.load_workbook("D:\Coding\Projects\Stocks\Stocks.xlsx")

BR_NOW = Stocks["BR_NOW"]
PT_NOW = Stocks["PT_NOW"]

BR_Last = {}
PT_Last = {}

for i in range(1,102):
    BR_Last[BR_NOW["A" + str(i)].value]=[BR_NOW["B" + str(i)].value]

【讨论】:

  • 非常感谢......它完全有效......你们太棒了
【解决方案2】:

你可以用这个;

for i in range(1,102):
   BR_Last[BR_NOW["A"+str(i)].value]=[BR_NOW["B"+str(i)].value]

【讨论】:

  • 非常感谢......它完全有效......你们太棒了