使用Python解析Excel文档
我想把Excel文档里的内容解析成Python中的列表。有没有什么Python库可以帮助我做到这一点?这个库里有哪些相关的函数呢?
6 个回答
15
openpyxl 是一个很棒的库,它可以用来读取和写入 2010 年的 xlsx 文件。
下面是一个示例解析代码
from openpyxl import load_workbook
wb = load_workbook('Book1.xlsx')
ws = wb.active
for row in ws.iter_rows():
for cell in row:
print cell.value
下面是一个示例写入代码
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
wb = Workbook()
dest_filename = 'empty_book.xlsx'
ws1 = wb.active
ws1.title = "range names"
for row in range(1, 40):
ws1.append(range(600))
wb.save(filename = dest_filename)
你可以在这里了解更多信息: https://openpyxl.readthedocs.io/en/stable/index.html
28
pandas库提供了一种快速简单的方法来读取Excel文件。如果你的Excel文件主要是一些数据,没有太复杂的内容,这个方法就能很好地工作:
import pandas as pd
ex_data = pd.read_excel('excel_file.xlsx')
它会把数据读取到一个pandas DataFrame中,这样处理数据就方便多了。
如果你想把数据转换成列表,可以使用:
ex_data['column1_name'].values.tolist()
如果你的每个工作表里有多个表格和其他内容,那么你可能需要使用其他库,比如xlrd或openpyxl。
51
如果你想解析Excel文件,最好的选择是使用xlrd这个库。你可以在python-excel.org网站上找到关于xlrd和其他相关的Python Excel库的链接和示例,其中还有一份PDF文档,里面有一些使用xlrd的好例子。当然,在StackOverflow上也有很多关于xlrd的相关问题,可能对你有帮助。
需要注意的是,xlrd库只能处理xls
格式的文件(也就是Excel 2003及之前的版本),而不能处理更新的xlsx
格式。不过,还有一个更新的库openpyxl可以用来处理xlsx
文件,但我自己没有用过。
更新:
根据John的评论,现在xlrd库已经支持xls
和xlsx
两种文件格式。
希望这对你有帮助。