在python中读取.xlsx格式

时间:2011-07-21 08:18:08

标签: python excel xlsx openpyxl

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

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:1)

使用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)

答案 2 :(得分:0)

multiple ways to read XLSX formatted files using python。两个如下图所示,要求您至少安装 openpyxl,如果您想直接解析为熊猫,则需要安装熊猫,例如。 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() 然后使用 comment attribute 为每个单元格提取评论将通过以下方式实现。

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