相关疑难解决方法(0)

如何使用python的openpyxl模块访问单元格的实际值

我遇到了这个问题,因为cell.value函数返回用于单元格的公式,我需要在操作后提取Excel提供的结果.

谢谢.


好吧,我想我找到了解决办法; 显然要访问cell.internal值,你必须先在工作表中使用iter_rows(),这是一个"RawCell"列表.

for row in ws.iter_rows():

    for cell in row:

        print cell.internal_value
Run Code Online (Sandbox Code Playgroud)

python cell openpyxl

36
推荐指数
4
解决办法
7万
查看次数

xlwings 与 openpyxl 阅读 Excel 工作簿之间的差异

我大多只使用 xlwings 打开 ( read-write) 工作簿(因为我阅读的工作簿有复杂的宏)。但是我最近开始使用 openpyxl 打开 ( read-only) 工作簿,因为我需要阅读数千个工作簿来抓取一些数据。

我注意到 xlwings 和 openpyxl 读取工作簿的方式有很大的不同。我相信 xlwings 依赖于pywin32阅读工作簿。当您阅读工作簿时xlwings.Book(<filename>),实际工作簿会打开。我有一种感觉,这是一个结果pywin32

但是,使用openpyxl.load_workbook(<filename>)工作簿时不会出现窗口。我有一种感觉,这是不使用pywin32.

除此之外,我没有进一步了解后端如何为每个库工作。有人可以对此有所了解吗?依赖xlwingspywin32阅读工作簿是否有好处/成本,而openpyxl不是似乎没有使用pywin32

python excel openpyxl xlwings

15
推荐指数
1
解决办法
7944
查看次数

Python openpyxl data_only = True返回None

我有一个简单的Excel文件:A1 = 200 A2 = 300 A3 = = SUM(A1:A2)

此文件在excel中工作并显示SUM的正确值,但在使用openpyxl模块进行python时,我无法在data_only = True模式下获取值

shell中的Python代码:

wb = openpyxl.load_workbook('writeFormula.xlsx', data_only = True)
sheet = wb.active
sheet['A3']
<Cell Sheet.A3> # python response
print(sheet['A3'].value)
None # python response
Run Code Online (Sandbox Code Playgroud)

而:

wb2 = openpyxl.load_workbook('writeFormula.xlsx')
sheet2 = wb2.active
sheet2['A3'].value
'=SUM(A1:A2)'  # python response
Run Code Online (Sandbox Code Playgroud)

有什么建议我在做什么?

python excel openpyxl

7
推荐指数
3
解决办法
8114
查看次数

Python从xlsx读取值公式

我在从 xslx 文件读取公式值时遇到问题。为了获得价值,我使用 openpyxl,但是当我想获得价值时,我看到“无”。这是我的代码:

from openpyxl import *
wb = load_workbook('output.xlsx', data_only=True)
sh = wb["Sheet1"]
val=(sh['C5'].value)
Run Code Online (Sandbox Code Playgroud)

文件output.xlsx包含公式“C5=A1+B1”,单元格C5=2,但我无法获取该值。任何人都可以帮助我。可能我需要其他库来从 xslx 文件中读取公式的值。可能存在样本怎么办?我知道可以将此文件转换为其他格式以供阅读,但它不适用于此任务。

python excel

4
推荐指数
1
解决办法
7410
查看次数

Python只读取excel单元格中的公式

我有一个 excel 2010 文件,其中包含带有公式的单元格(请参阅下面的公式栏中的 C2)。(下面的截图1)

在此处输入图片说明

我正在使用 python 读取值,它正在打印公式而不是单元格的实际值(Eclipse 控制台下方的屏幕截图。)

在此处输入图片说明

我希望结果打印 10.188.11.184,这是由 excel 单元格的公式填充的值。如何做到这一点?提前致谢。

python excel openpyxl

3
推荐指数
1
解决办法
1万
查看次数

通过 openpyxl 使用公式从 Excel 单元格获取值

我需要使用公式从 Excel 单元格获取值,但我不需要公式。我需要一个,但不需要单元格中的公式。我该怎么做?我尝试只使用

\n
working_sheet.cell(row=row_number, column=column_number+1).value\n
Run Code Online (Sandbox Code Playgroud)\n

并扩展一个列表。但我得到的清单就像

\n
[\n    \'2020\',\n    \'\xd0\xbe\xd1\x81\xd1\x82\xd0\xb0\xd0\xbb\xd1\x8c\xd0\xbd\xd1\x8b\xd0\xb5 \xd0\xb3\xd1\x80\xd1\x83\xd0\xb7\xd1\x8b\',\n    \'\xd0\x9a\xd0\x9e\xd0\x9b\xd0\xa3\xd0\x9c\xd0\x91\xd0\x98\xd0\xaf\',\n    \'\xd0\x9d\xd0\x9e\xd0\x92.\xd0\x9f\xd0\x9e\xd0\xa0\xd0\xa2-\xd0\xad\xd0\x9a\xd0\xa1\',\n    \'\xd0\x9d\xd0\x9e\xd0\x92.\xd0\x9f\xd0\x9e\xd0\xa0\xd0\xa2-\xd0\xad\xd0\x9a\xd0\xa1\',\n    \'\xd0\x9d\xd0\x9e\xd0\x92.\xd0\x9f\xd0\x9e\xd0\xa0\xd0\xa2-\xd0\xad\xd0\x9a\xd0\xa1\',\n    \'\xd0\x9d\xd0\x9e\xd0\x92.\xd0\x9f\xd0\x9e\xd0\xa0\xd0\xa2-\xd0\xad\xd0\x9a\xd0\xa1\',\n    \'\xd0\x9c\xd0\x95\xd0\x9a\xd0\xa1\xd0\x98\xd0\x9a\xd0\x90\',\n    \'\xd0\xbf\xd0\xbe\xd0\xb2\xd0\xb0\xd0\xb3\xd0\xbe\xd0\xbd\xd0\xbd\xd0\xb0\xd1\x8f\',\n    \'\xd0\xbf\xd0\xbe\xd1\x80\xd0\xbe\xd0\xb6\xd0\xbd\xd0\xb8\xd0\xb5\',\n    \'0\',\n    \'0\',\n    \'=VLOOKUP(C28038,$AB$2:$AC$1048576,2,FALSE)\', \n    \'=VLOOKUP(H28038,$AB$2:$AC$1048576,2,FALSE)\',\n    \'=VLOOKUP(E28038,$X$2:$Y$1048576,2,FALSE)\',\n    \'=VLOOKUP(F28038,$X$2:$Y$1048576,2,FALSE)\'\n]\n
Run Code Online (Sandbox Code Playgroud)\n

所以我不需要像这样的值=VLOOKUP...

\n

我能做些什么?

\n

excel python-3.x openpyxl

2
推荐指数
1
解决办法
1028
查看次数

标签 统计

excel ×5

openpyxl ×5

python ×5

cell ×1

python-3.x ×1

xlwings ×1