我推荐使用对excel进行自动化操作, 因为它能同时支持读写excel, 不像流行的xlrd仅支持读操作, 也不像xlwt仅支持写操作。实现对excel的读取只需要以下几个轻松的步骤1. 引入from openpyxl import load_workbook2. 打开excel文件file_path ./求一行数据的和.xlsx workbook load_workbook(file_path)使用函数打开excel文件获得整个excel对象3. 选取sheet存在一个excel, 它有着一个或者多个sheet, 当运用读取excel数据这个操作的时候, 必然要指明要读取哪一个sheet里面的数据。sheet workbook.get_sheet_by_name(学生成绩)依据sheet名称, 获取sheet对象这类方法是可行的, 然而, 要晓得excel里所含内容例如究竟有多少, sheet的名称是些什么, 数据于哪一行哪一列存储, 这一切如果全然不知, 自动化便没法达成, 简言之, 要是一件事你都不晓得该如何去做, 程序同样也不会知晓。方法可以返回excel里所有的sheet名称。4. 读取sheet中的数据4.1 获取行列信息当读取sheet的数据之际, 你理应率先去获取此sheet页的数据究竟有多少行, 以及有多少列, 待获取到这些讯息之后, 便能够按照行去逐一遍历, 或者是依照列来展开遍历。start_row sheet.min_row # 起始行 end_row sheet.max_row # 结束行 start_col sheet.min_column # 起始列 end_col sheet.max_column # 结束列 print(start_row, end_row, start_col, end_col)会自动帮你识别数据的行列范围以下图数据为例起始行数并非是1, 而是6, 起始行不是那代表1 , 而是6 , 从第6行起才开始有数据, 数据起始列是1, 也就是A这一列, 所有与索引相关操作都是从1起步的, 这么做违反了编程语言普遍遵循的索引从0开始的原则, 不过却有利于非计算机从业人员运用它来操作excel, 因为excel里行的索引是从1开始的, 人们在编程时能够不经过换算就使用从excel里获取的索引数值。4.2 读取某个单元格将一个单元格之中的数据予以读取, 要对单元格的行号以及列号进行指定, 以如下图示的数据当作示例。读取小刚的考试分数总和需要读取第2行第5列的单元格的数据score_sum sheet.cell(2, 5) print(score_sum, type(score_sum)) #返回值属于cell方法的那种类型是Cell类型, 然而实际上我们仅仅是期望去获取单元格当中的值这一情况, Cell类型的数据一般而言对于我们来讲是不存在什么帮助的, 单元格的值是被存储于value属性里面的。score_sum sheet.cell(2, 5).value print(score_sum, type(score_sum)) # 288会试着去协助你推断数据的类别, 它能尽可能多地把数据类别转化成int或者float。对于处理, 采用cell方法, 你能够凭借单元格的名称去获取数值, 如此这般的方式极为适配读取处于指定位置的单元格数据。print(sheet[E2].value)4.3 按行遍历按行遍历数据可使用方法def iter_rows(self, min_rowNone, max_rowNone, min_colNone, max_colNone, values_onlyFalse): pass有一种方法, 它能够让你去指定遍历开始的行, 还能指定遍历结束的那个行, 与此同时呢, 又能够去指定这些行所对应的数据于列上面起始的位置, 以及结束的位置, 当你设置这四个参数之后, 就能够获取到处于指定大小的矩形范围以内的数据, 要是这些参数都不去指定的话, 那么就会进行全量遍历, 这等同于去调用 rows 方法, 并且 rows 方法在其内部还会调用其他方法。for row in sheet.rows: print(row)“row”的类型属于元组, 元组当中的元素均为“Cell”类型, 要是想获取单元格的存储内容, 那还得需你来再进一步开展处理了。rows [] for row in sheet.rows: rows.append([cell.value for cell in row]) print(rows)实在是很让我感到不解, 为何没有给予更为直截了当的方式, 从而让用户能够去拿到单元格的真实存储数值, 怎么非得返回Cell对象, 这结果致使人们不得不去进一步做相关的处理, 如果不是鉴于它是能够同时去支持读以及写这两项功能的话, 我真的是不想去使用它的。4.4 按列遍历与按行遍历相似提供了 和 方法使用方法参考4.3cols [] for col in sheet.columns: cols.append([cell.value for cell in col]) print(cols)4.5 读取某一行或者某一列的数据你要是想要去读取某一行的数据, 那你必然是在事先就已经知晓了行号, 比如说假设要去把第一行的内容给读取出来。row sheet.iter_cols(min_colstart_col, max_colend_col, min_row1, max_row1) row [cell[0].value for cell in row] print(row) # [姓名, 语文, 数学, 英语, 总和]还有更简单点的写法row [] for i in range(start_col, end_col1): row.append(sheet.cell(1, i).value) print(row) # [姓名, 语文, 数学, 英语, 总和]获取第一列的数据可以这样写col [] for i in range(start_row, end_row 1): col.append(sheet.cell(i, 1).value) print(col) # [姓名, 小刚, 小明, 小丽, 小王]