Python读取Excel中的数据

 1、用xlrd包读取excel数据

import xlrd

def read_excel():
    # 打开文件,xlrd.open_workbook(),函数中参数为文件路径,分为相对路径和绝对路径
    workBook = xlrd.open_workbook(r'C:\Users\Lj\Desktop\data.xls')

    # 获取所有sheet的名字(list类型)
    allSheetNames = workBook.sheet_names()
    print(allSheetNames);
    # 按索引号获取单个sheet的名字(string类型)
    sheet1Name = workBook.sheet_names()[0]
    print(sheet1Name);

    # 获取sheet内容
    ## 按索引号获取sheet内容
    sheet1_content1 = workBook.sheet_by_index(0); # sheet索引从0开始
    ## 按sheet名字获取sheet内容,workBook.sheet_by_name()括号内的参数是sheet的真实名字
    sheet1_content2 = workBook.sheet_by_name('省煤器+蒸发区')

    # 获取sheet的名称,行数,列数
    print(sheet1_content1.name,sheet1_content1.nrows,sheet1_content1.ncols)

    # 获取整行和整列的值(数组)
    rows = sheet1_content1.row_values(3)  # 获取第四行内容
    cols = sheet1_content1.col_values(2)  # 获取第三列内容
    print(rows);

    # 使用循环获得多行的数据并保存到table中,获得多列数据是同样的方法
    table = []  # 定义一个空列表,将读取的每一行数据保存到该列表中
    for i in range(sheet1_content1.nrows):
        rows = sheet1_content1.row_values(i)
        table.append(rows)
    print(rows)

    # 获取单元格内容(三种方式)
    print(sheet1_content1.cell(1, 0).value)
    print(sheet1_content1.cell_value(2, 2))
    print(sheet1_content1.row(2)[2].value)

    # 获取单元格内容的数据类型
    # Tips: python读取excel中单元格的内容返回的有5种类型 [0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error]
    print(sheet1_content1.cell(1, 0).ctype)


if __name__ == '__main__':
    read_excel()

2、用pandas包读取excel数据

先熟悉以下read_excel函数中常用的几个参数,想要看完整的参数解释可以参考Pandas read_excel()参数详解_leenuxcore的博客-CSDN博客_read_excel

pandas.read_excel(io,sheet_name=0,header=0,names=None,index_col=None,usecols=None,squeeze=False,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skiprows=None,nrows=None,na_values=None,keep_default_na=True)

其中io表示文件路径,示例:io=r"文件绝对路径";sheet_name表示sheet的名称,默认为0,表示不输入sheet_name的参数下,默认引用第一张sheet的数据,示例:sheet_name="sheet名称"或sheet_name=[1]([1]表示第二个的sheet)或sheet_name=None(None 表示引用所有sheet);header表示用第几行作为表头,默认header=0,即默认第一行为表头,示例:hearder=1(选择第二行为表头,第一行数据就不要了)或header=None(表示不使用数据源中的表头);index_col指定列为索引列,示例:index_col=None(默认项,也就是索引为0的列用作DataFrame的行标签)或index=0(指定第几列为索引列);usecols默认为None,解析所有列,如果为str,则表示Excel列字母和列范围的逗号分隔列表(例如“ A:E”或“ A,C,E:F”),范围全闭,如果为int,则表示解析到第几列,如果为int列表,则表示解析那几列;squeeze默认为False,如果设置squeeze=True则表示如果解析的数据只包含一列,则返回一个Series;dtype是指定列的数据类型,示例:dtype=None(默认为None,也就是不改变数据类型)或dtype={0:"float64", 2:str};engine可以接受的参数有“ xlrd”,“ openpyxl”或“ odf”,用于使用第三方的库去解析excel文件;converters是对指定列的数据进行指定函数的处理,传入参数为列名与函数组成的字典。key 可以是列名或者列的序号,values是函数,可以def函数或者直接lambda都行;true_values将指定的文本转换为True,默认为None,false_values将指定的文本转换为False,默认为None,示例:true_values=['女'], false_values=['男'];skiprows表示跳过指定的行,示例:skiprows=1;nrows指定需要读取前多少行,通常用于较大的数据文件中,默认为None,示例:nrows=3(读取前三行);na_values指定某些列的某些值为NaN,示例:na_values='大';keep_default_na表示导入数据时是否导入空值。

import pandas as pd

# 创造一个文件名变量,此处用的是绝对路径,Windows需要加r
file_name = r'C:\Users\Lj\Desktop\data.xls'

# 使用ExcelFile
table = pd.ExcelFile(file_name)
print(type(table))
print(table.sheet_names)  # 按照顺序获取sheet名称
# 提取表格信息
sheet1 = table.parse(sheet_name=0)  # 可以使用序号,一次性读取多个可用列表[0,1]
sheet2 = table.parse(sheet_name=table.sheet_names[1])  # 也可以使用sheet名

# 使用read_excel()
# 逐个sheet读取
st1 = pd.read_excel(file_name, sheet_name='省煤器+蒸发区', header=1)
st2 = pd.read_excel(file_name, sheet_name='过热器系统')
# 一次读取多个sheet
table = pd.read_excel(file_name, sheet_name=[0, 1])
print(st1.shape)  # 输出元组,分别为行数和列数,默认第一行是表头不算行数
print(st1)  # 输出该sheet的所有内容
print(st1.values)  # 输出第一行以外的值
print(st1.values[0])  # 输出第一行的值
print(st1['省煤器压力'].values)  # 输出具体一列的值

你可能感兴趣的:(excel,python)