如何用Python打开Excel文件?

2024-04-20 00:31:15 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在Python中打开Excel文件进行读取?

我用reading命令打开了文本文件,例如sometextfile.txt。如何对Excel文件执行此操作?


Tags: 文件命令txtexcel文本文件readingsometextfile
1条回答
网友
1楼 · 发布于 2024-04-20 00:31:15

试试the xlrd library

[编辑]-从您的评论中我可以看到,下面的片段可能会起到作用。我在这里假设您只是在一个列中搜索单词“john”,但是您可以添加更多或使其成为一个更通用的函数。

from xlrd import open_workbook

book = open_workbook('simple.xls',on_demand=True)
for name in book.sheet_names():
    if name.endswith('2'):
        sheet = book.sheet_by_name(name)

        # Attempt to find a matching row (search the first column for 'john')
        rowIndex = -1
        for cell in sheet.col(0): # 
            if 'john' in cell.value:
                break

        # If we found the row, print it
        if row != -1:
            cells = sheet.row(row)
            for cell in cells:
                print cell.value

        book.unload_sheet(name) 
网友
2楼 · 发布于 2024-04-20 00:31:15

这不像打开纯文本文件那么简单,而且需要某种外部模块,因为没有内置的模块来完成此操作。以下是一些选项:

http://www.python-excel.org/

如果可能,可以考虑将excel电子表格导出为CSV文件,然后使用内置的python CSV模块读取它:

http://docs.python.org/library/csv.html

网友
3楼 · 发布于 2024-04-20 00:31:15

编辑:
在较新版本的pandas中,可以将图纸名称作为参数传递。

file_name =  # path to file + file name
sheet =  # sheet name or sheet number or list of sheet numbers and names

import pandas as pd
df = pd.read_excel(io=file_name, sheet_name=sheet)
print(df.head(5))  # print first 5 rows of the dataframe

查看文档中有关如何传递sheet_name
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html的示例

旧版本:
你也可以使用^{} package。。。。

使用包含多个工作表的excel文件时,可以使用:

import pandas as pd
xl = pd.ExcelFile(path + filename)
xl.sheet_names

>>> [u'Sheet1', u'Sheet2', u'Sheet3']

df = xl.parse("Sheet1")
df.head()

df.head()将打印Excel文件的前5行

如果使用Excel文件处理单个工作表,只需使用:

import pandas as pd
df = pd.read_excel(path + filename)
print df.head()

相关问题 更多 >