1. 安装 xlrd模块
pip install xlrd
2. 读取文件内容
#!/usr/bin/env python3 import xlrd name = r"E:excelyong.xls" # 1. 打开文件 data = xlrd.open_workbook(name) # 2. 打开工作表 # 2.1. 打印 文件对象的工作表明, 列表格式 # all_table_name = data.sheet_names() # print(all_table_name) # 2.2. 打开所有的工作表的列表 # table = data.sheets() # 格式为 list 获取多个, 遍历即可 # 2.3. 通过索引选取工作表, 如果索引没有工作表就会报错 # table = data.sheet_by_index(0) # 2.4. 打开指定工作表 table = data.sheet_by_name(u'Sheet1') # 3. 获取行, 列 # 3.1. 获取行数 nrows = table.nrows print(nrows) # 3.2. 获取 列数 ncols = table.ncols print(nrows) # 4. 获取所有行 list_data = [] # 4.1. 循环 nrows打印的行数 for i in range(nrows): # 1). 使用 row.values 方法, 获取 文件的第 i 行数据, 格式为 list ,从0开始计数 line_data = table.row_values(i) # print('line_data: ', line_data, type(line_data)) # 2). 获取 一列 myColValues = table.col_values(i) # i是列数,从0开始计数,返回list对象。 # 3). 将 列表添加进总列表中 list_data.append(line_data) # 4.2. 打印总数据列表 print(list_data)
3. 模块的方法
1). 打开文件函数, 返回一个可操作的对象 data = xlrd.open_workbook("文件路径") 2). 获取行, 列数 (1): 获取行数 nrows = table.nrows print(nrows) (2): 获取列数 ncols = table.ncols print(nrows) 3). 根据对象工作表 (1): 打印 文件对象的工作表明, 列表格式 all_table_name = data.sheet_names() print(all_table_name) (2): 打开所有的工作表的列表, 格式为 list 获取多个, 遍历即可 table = data.sheets() (3): 通过索引选取工作表, 如果索引没有工作表就会报错 table = data.sheet_by_index(0) (4): 打开指定工作表 table = data.sheet_by_name(u'Sheet1') # 必须是 unicode 格式 4). 获取行内容 (1): 获取行内容 table.row_values(i) # i 是想要去的行数, 从 0 开始 所以一般选择 1.1 中的遍历取值 (2). 获取列内容 myColValues = table.col_values(i) # i是列数,从0开始计数,返回 list 对象。 5). 获取单元格内容 cell_A1 = table.cell(0,0).value cell_C4 = table.cell(2,3).value 6). 使用行列索引 cell_A1 = table.row(0)[0].value cell_A2 = table.col(1)[0].value 7). 使用行列索引 cell_A1 = table.row(0)[0].value cell_A2 = table.col(1)[0].value
4. Excel 时间转换
import xlrd excel_path = r"D:excel文件.xlsx" xlrd_obj = xlrd.open_workbook(excel_path) table = xlrd_obj.sheet_by_index(1) for i in range(table.nrows): # 1. 获取一行数据 line_data = table.row_values(i) # 2. 获取列表的第一个值 start_date = line_data[0] # 3. 判断是否是 float if isinstance(start_date, float): # 4. 将 浮点数转化为 时间格式 start_date = xlrd.xldate.xldate_as_datetime(start_date, 0) # 5. 将 日期格式转化为 字符串格式 start_date = start_date.strftime('%Y-%m-%d') line_data[0] = start_date print("line_data1: ", line_data)