郑州网站seo哪家公司好,广州建筑集团官网首页,Wordpress_视频界面,wordpress oss 插件使用xlrd、xlutils读写excel 1、环境和版本2、相关使用方法封装2.1 根据行下标返回对应行数据2.2 根据列下标返回对应列数据2.3 读取指定单元格数据2.4 通过表单名读取全部数据2.5 通过表索引读取全部数据2.6 向已存在sheet中追加数据2.7 原文件基础上新建的sheet并写入数据 3、… 使用xlrd、xlutils读写excel 1、环境和版本2、相关使用方法封装2.1 根据行下标返回对应行数据2.2 根据列下标返回对应列数据2.3 读取指定单元格数据2.4 通过表单名读取全部数据2.5 通过表索引读取全部数据2.6 向已存在sheet中追加数据2.7 原文件基础上新建的sheet并写入数据 3、其他踩坑 1、环境和版本
电脑winexcel文件格式.xlsxlrd 版本 1.2.0高版本存在部分属性不兼容安装指定版本pip install xlrd 1.2.0xlutils 版本:2.0.0
2、相关使用方法封装
2.1 根据行下标返回对应行数据
def read_excel_by_row(file_path, sheet_index, row_index):读取指定行数据data xlrd.open_workbook(file_path)sheet data.sheet_by_index(sheet_index)nrows sheet.nrows # 行数ncols sheet.ncols # 列数try:table_list sheet.row_values(rowxrow_index, start_colx0, end_colxNone) # start_colx开始列end_colx结束列return table_listexcept Exception as e:print(当前表单行数%s行%s列 % (nrows, ncols), e)2.2 根据列下标返回对应列数据
def read_excel_by_col(file_path, sheet_index, col_index):读取指定列数据data xlrd.open_workbook(file_path)sheet data.sheet_by_index(sheet_index)nrows sheet.nrows # 行数ncols sheet.ncols # 列数try:table_list sheet.col_values(colxcol_index, start_rowx0, end_rowxNone) # start_rowx开始行end_colx结束行return table_listexcept Exception as e:print(当前表单行数%s行%s列 % (nrows, ncols), e)2.3 读取指定单元格数据
def read_excel_by_cell(file_path, sheet_index,row_index,col_index):读取指定单元格数据:param file_path: 文件路径. .xls格式的文件:param sheet_index: sheet表索引:param row_index: 行下标:param col_index: 列下标:return: 第row_index行col_index数据wb xlrd.open_workbook(file_path)sheet wb.sheet_by_index(sheet_index)value sheet.cell_value(row_index, col_index)# value_type sheet.cell_type(row_index, col_index) # 单元格类型 0-empty,1-string,2-number,3-date,4-boolean,5-errorreturn value2.4 通过表单名读取全部数据
def red_excel_by_sheet_name(file_path, sheet_name):读取excel数据并返回:param file_path: 文件路径 .xls文件:param sheet_index: sheet表单所以:return: 表单Listdata xlrd.open_workbook(file_path)# table data.sheet_by_index(sheet_index)table data.sheet_by_name(sheet_name)# 表格行数nrows table.nrows #行数ncols table.ncols# print(nrows, ncols)table_list []for row_index in range(0, nrows):temp_list table.row_values(rowxrow_index, start_colx0, end_colxNone) # start_colx开始列end_colx结束列table_list.append(temp_list)return table_list2.5 通过表索引读取全部数据
def red_excel_by_sheet_index(file_path, sheet_index):通过表单索引读取excel数据并返回:param file_path: 文件路径:param sheet_index: 表单索引:return:对应表单的数据data xlrd.open_workbook(file_path)table data.sheet_by_index(sheet_index)# table data.sheet_by_name(sheet_index)# 表格行数nrows table.nrowsncols table.ncols# print(nrows, ncols)table_list []for row_index in range(0, nrows):temp_list table.row_values(rowxrow_index, start_colx0, end_colxNone) # start_colx开始列end_colx结束列table_list.append(temp_list)return table_list2.6 向已存在sheet中追加数据
def append_to_sheet(file_path, sheet_tag, data):向已存在的表中追加数据:param file_path: 文件路径sheet已经存在的情况:param sheet_tag: sheet表标识 sheet_name or sheet_index:param data: 要追加的数据:return: Nonetry:# 打开文件openFile xlrd.open_workbook(file_path)# 读取文件准备写入信息if isinstance(sheet_tag, int): #如果参数是int根据索引查找表单max_row openFile.sheet_by_index(sheet_tag).nrowselse: #如果参数是str根据名称查找表单max_row openFile.sheet_by_name(sheet_tag).nrowsprint(当前最大行, max_row)write copy(openFile)write_sheet write.get_sheet(sheet_tag)start_row max_row # 从表格的第5行开始写入数据# 一行一行的写一行对应的所有列for d in data: # 控制行col 0for value in d: # 控制每一列write_sheet.write(start_row, col, value) # rou代表列col代表行value写入值col 1start_row 1# 保存write.save(file_path)except FileNotFoundError:print(f文件 {file_path} 未找到。)except xlrd.XLRDError:print(无法读取Excel文件请检查文件格式或内容。)except Exception as e:print(f发生未知错误{e})2.7 原文件基础上新建的sheet并写入数据
def append_date_to_new_sheet(file_path, sheet_name,data):原文件基础上新建的sheet并写入数据:param file_path::param sheet_name::param data:list数据例data [[1,2],[3,4]]:return:NoneopenFile xlrd.open_workbook(file_path)write copy(openFile)write.add_sheet(sheet_name)write_sheet write.get_sheet(sheet_name) # 已存在的表单实际需要新建row 0 # 从表格的第二行开始写入数据# 一行一行的写一行对应的所有列for d in data: # 控制行col 0for one in d: # 控制每一列write_sheet.write(row, col, one) # rou代表列col代表行one写入值col 1row 1write.save(file_path)3、其他踩坑
xlrd 仅1.2.0 版本支持.xls 文件更高版本不支持没有删除sheet功能 openpyxl 支持.xlsx 读取的时候一直显示文件被损坏, 不支持.xls格式有remove功能但是使用过程中也有问题后续研究明白再做补充吧