python读取excel文件(xlrd)

读取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])

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章