读取excel的包的分析 pandas,numpy,虽然功能强大,但需要重新定义excel,效率低。 xlutils,xlrd(read only),xlwt(write only,需要创建新工作表) xutils可实现读写切换,对读取包重新编码,但影响原三方包(xlrd)函数调用,xlwt读写功能有限。最终采用改后逻辑。 openpyxl:直接读写excel文档,可直接修改数据,可能会影响原数据。
import xlrd
data = xlrd.open_workbook('文件名.xlsx')
print(data.sheet_names())
输出sheet1、sheet2等页名,一般用不上,因为可以用下表取页
sheet = data.sheet_by_name('sheet1') sheet = data.sheet_by_index(0)
两个方法都行,一般用第二个,因为第一个还得事先知道页名,第二个直接指定下标就行了
print(table.nrows) print(table.ncols)
获取整行的值和整列的值,返回的结果为数组 整行值:table.row_values(start,end) 整列值:table.col_values(start,end) 参数 start 为从第几个开始打印,end为打印到哪个位置结束,默认为none print(table.row_values(0)) print(table.col_values(1))
获取某个单元格的值,例如获取B3单元格值 print(table.cell(3,2).value)
把excel文件内容读到列表list里面
import xlrd table = xlrd.open_workbook("文件名.xlsx") sheet = table.sheet_by_index(0) content = [] # 第一读一个,方便特殊表格的操作 for i in range(sheet.nrows): tmp = [] for j in range(sheet.ncols): tmp.append(sheet.cell_value(i,j)) content.append(tmp) for i in range(sheet.nrows): print(content[i]) # 或者一次读一行 for i in range(sheet.nrows): content.append(sheet.row_values(i)) for i in range(sheet.nrows): print(content[i])