9

我必须在 python 中每 10 分钟读取一次 .xlsx 文件。
最有效的方法是什么?
我试过使用 xlrd,但它不读取 .xlsx - 根据他所做的文档,但我不能这样做 - 出现Unsupported format, or corrupt file异常。
阅读 xlsx 的最佳方法是什么?
我也需要阅读单元格中的评论。

4

3 回答 3

7

xlrd 尚未发布读取 xlsx 的版本。在那之前,Eric Gazoni构建了一个名为openpyxl的包——读取 xlsx 文件,并对其进行有限的写入。

于 2011-07-21T08:26:19.827 回答
4

使用 Openpyxl 的一些基本示例:

import openpyxl

# Open Workbook
wb = openpyxl.load_workbook(filename='example.xlsx', data_only=True)

# Get All Sheets
a_sheet_names = wb.get_sheet_names()
print(a_sheet_names)

# Get Sheet Object by names
o_sheet = wb.get_sheet_by_name("Sheet1")
print(o_sheet)

# Get Cell Values
o_cell = o_sheet['A1']
print(o_cell.value)

o_cell = o_sheet.cell(row=2, column=1)
print(o_cell.value)

o_cell = o_sheet['H1']
print(o_cell.value)

# Sheet Maximum filled Rows and columns
print(o_sheet.max_row)
print(o_sheet.max_column)
于 2020-02-28T16:53:11.857 回答
2

多种方法可以使用 python 读取 XLSX 格式的文件。下面说明了两个,要求您至少安装openpyxl,如果您想直接解析成pandas,您需要安装pandas,例如。pip install pandas openpyxl

选项1:熊猫直接

主要用例:仅加载数据以进行进一步处理。

在 pandas 中使用read_excel()函数将是您的最佳选择。请注意,pandas 应该自动回退到 openpyxl,但如果出现格式问题,最好直接指定引擎。

df_pd = pd.read_excel("path/file_name.xlsx", engine="openpyxl")

选项 2 - openpyxl 直接

主要用例:获取或编辑特定的 Excel 文档元素,例如注释(由 OP 请求)、格式属性或公式。

使用load_workbook()然后使用每个单元格的注释属性提取注释将通过以下方式实现。

from openpyxl import load_workbook
wb = load_workbook(filename = "path/file_name.xlsx")
ws = wb.active
ws["A1"].comment # <- loop through row & columns to extract all comments
于 2021-05-29T10:44:18.140 回答