openpyxl中单元格的打印值

Printing value of a cell in openpyxl

我正在使用 openpyxl 编写一个简单的 python 程序,我只是一个初学者,试图了解更多关于 python 及其模块的信息,因为它令人困惑。

我想打印一个单元格的值,最终我登陆了文档页面

https://openpyxl.readthedocs.io/en/stable/api/openpyxl.cell.cell.html?highlight=value#openpyxl.cell.cell.Cell.value

我只想知道

class openpyxl.cell.cell.Cell(worksheet, row=None, column=None, value=None, style_array=None) 

其实就是这里的意思。我知道它在顶部说 openpyxl.cell.cell 模块,但我真的觉得它很混乱,这是否意味着这是一个 class in a module in a module in a module 还是我完全错了?

现在我使用的代码如下:

import openpyxl as xl
from openpyxl import Workbook
wb = xl.load_workbook('xyz.xlsx')
ws = wb['Sheet1']
print(ws.cell(row=1,column=1).value})

我的问题是最后一行是如何工作的?我不应该使用 xl.cell.cell.value 而不是 ws.cell(row=1,column=1).value 吗?对不起,我不明白。任何帮助将不胜感激。

使用

import openpyxl 
print( openpyxl.__file__ ) 

查找源代码路径(跳过__init__.py

在 Linux 我有 /usr/local/lib/python3.7/dist-packages/openpyxl/ 并且文件夹 cell 和文件 cell.pyclass Cell - 这是你的 class openpyxl.cell.cell.Cell


没有

xl.cell.cell.value

但是

xl.cell.cell.Cell(...).value

mycell = xl.cell.cell.Cell(...) 
mycell.value 

但这会创建独立的 cell,它不是 workspace 的一部分,因此它对您没有用。

当您读取文件时,它会创建许多 Cell() 并将它们全部保存在其他 class Workspace 中(可能是 list/dict 个单元格或单元格数组) Workspace 有方法 cell(row,column)(它不是 class Cell,也不是模块 cell)让你可以访问 Cell() 之一。

所以使用

ws.cell(row=1,column=1).value

因为它允许您访问从文件中读取的单元格。

Doc 可以帮助您查看可以与 ws.cell(row=1,column=1) 一起使用的其他功能 - 即

mycell = ws.cell(row=1,column=1)

print( mycell.value )
print( mycell.column_letter )
print( mycell.column )
print( mycell.row )
print( mycell.offset(row=1,column=1) )