用Python读取/parsingExcel(xls)文件

用Python(而不是CSV文件)读取Excel(XLS)文件的最佳方法是什么?

有没有一个内置的软件包在Python中默认支持这个任务?

我强烈推荐xlrd读取.xls文件。

旅行者提到使用COM自动化。 几年前我自己做了这个,被警告说这样做是一个真正的PITA。 注意事项的数量是巨大的,文件是缺乏和烦人的。 我遇到了很多奇怪的bug和疑难杂症,其中有些花了好几个小时才弄清楚。

更新:对于较新的.xlsx文件,推荐的用于读写的库似乎是openpyxl 。

使用pandas:

 import pandas as pd xls = pd.ExcelFile("yourfilename.xls") sheetX = xls.parse(2) #2 is the sheet number var1 = sheetX['ColumnName'] print(var1[1]) #1 is the row number... 

python xlrd库可以更好的解决这个问题

 import xlrd 

打开工作簿

 workbook = xlrd.open_workbook('your_file_name.xlsx') 

按名称打开表格

 worksheet = workbook.sheet_by_name('Name of the Sheet') 

按索引打开表格

  worksheet = workbook.sheet_by_index(0) 

读取单元格值

 sheet.cell(0, 0).value 

您可以使用此处列出的任何库(如基于JExcelApi或xlwt的Pyxlreader )以及COM自动化来使用Excel本身来读取文件,但是为此,您将Office作为软件的依赖项引入,这可能不总是一个选项。

你也可以考虑运行(非python)程序xls2csv。 喂它一个xls文件,你应该得到一个csv。

对于较旧的Excel文件,可以使用OleFileIO_PL模块读取所使用的OLE结构化存储格式。

Python Excelerator也可以处理这个任务。 http://ghantoos.org/2007/10/25/python-pyexcelerator-small-howto/

它也可以在Debian和Ubuntu中使用:

  sudo apt-get install python-excelerator