如何使用python 3打开xlsx文件

Ath*_*lha 6 xlrd xlsx python-3.x

我有一张xlsx文件和1张.我试图用python 3(xlrd lib)打开它,但我得到一个空文件!

我用这个代码:

file_errors_location = "C:\\Users\\atheelm\\Documents\\python excel mission\\errors1.xlsx"
workbook_errors = xlrd.open_workbook(file_errors_location)
Run Code Online (Sandbox Code Playgroud)

我没有错误,但是当我输入时:

workbook_errors.nsheets
Run Code Online (Sandbox Code Playgroud)

我得到"0",即使文件有一些表...我输入时:

workbook_errors 
Run Code Online (Sandbox Code Playgroud)

我明白了:

xlrd.book.Book object at 0x2..
Run Code Online (Sandbox Code Playgroud)

任何帮助?谢谢

khe*_*ana 17

读取 xls 文件有两个模块:openpyxl 和 xlrd

此脚本允许您使用 xlrd 将 excel 数据转换为字典列表

import xlrd

workbook = xlrd.open_workbook('C:\\Users\\atheelm\\Documents\\python excel mission\\errors1.xlsx')
workbook = xlrd.open_workbook('C:\\Users\\atheelm\\Documents\\python excel mission\\errors1.xlsx', on_demand = True)
worksheet = workbook.sheet_by_index(0)
first_row = [] # The row where we stock the name of the column
for col in range(worksheet.ncols):
    first_row.append( worksheet.cell_value(0,col) )
# tronsform the workbook to a list of dictionnary
data =[]
for row in range(1, worksheet.nrows):
    elm = {}
    for col in range(worksheet.ncols):
        elm[first_row[col]]=worksheet.cell_value(row,col)
    data.append(elm)
print data
Run Code Online (Sandbox Code Playgroud)


Pra*_*iya 9

不幸的是,读取 Excel 文档所需的 python 引擎“xlrd”已明确删除对 xls 文件以外的任何内容的支持。

所以你现在可以这样做 -

注意:这对我来说适用于最新版本的 Pandas(即 1.1.5)。以前,我使用的是 0.24.0 版本,但它不起作用,所以我必须更新到最新版本。


小智 5

您可以pandas.read_excel像使用熊猫一样pandas.read_csv

import pandas as pd
file_errors_location = 'C:\\Users\\atheelm\\Documents\\python excel mission\\errors1.xlsx'
df = pd.read_excel(file_errors_location)
print(df)
Run Code Online (Sandbox Code Playgroud)

  • 多变优雅!您可以使用以下方式迭代行:`for index, row in df.iterrows():` (3认同)
  • 请注意,您需要安装库`xlrd`才能起作用。 (2认同)

小智 5

另一种方法:

import openpyxl 
workbook_errors = openpyxl.Workbook()
workbook_errors = openpyxl.load_workbook(file_errors_location)
Run Code Online (Sandbox Code Playgroud)