在python中读取.xlsx格式

Dje*_*ent 4 python excel xlsx openpyxl

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

Ada*_*ris 7

xlrd尚未发布尚未读取xlsx的版本.在此之前,Eric Gazoni构建了一个名为openpyxl的软件包- 读取xlsx文件,并对它们进行有限的编写.

  • 注意:在撰写本文时,xlrd 不再支持 xlsx。 (3认同)
  • 从版本0.0.0(2012年8月)开始,xlrd已经能够读取.xlsx文件. (2认同)

小智 5

使用 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)
Run Code Online (Sandbox Code Playgroud)


Rnd*_*mbl 5

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

选项1:pandas直接

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

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

df_pd = pd.read_excel("path/file_name.xlsx", engine="openpyxl")
Run Code Online (Sandbox Code Playgroud)

选项 2 - openpyxl 直接

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

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

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
Run Code Online (Sandbox Code Playgroud)