python excel读写操作

1、基本操作(读取)

import xlrd
'''
00137480    1    2
00137481    2    3
00137482    3    4
00137483    4    5
00137484    5    6
00137485    6    7
'''
#打开excel文件读取数据
date = xlrd.open_workbook('C:\Users\HZQ\Desktop\test.xls')
#获取一个工作表
table = date.sheet_by_index(0) #通过索引顺序获取
table1 = date.sheet_by_name('Sheet1')#通过页签名获取
table2 = date.sheets() #通过索引顺序获取
print(table)
print(table1)
print(table2)
#获取整行整列的值(list)
row_values0 = table.row_values(0)#获取第一行
row_values1 = table.row_values(1)#获取第二行
print(row_values0)
print(row_values1)
col_values0 = table.col_values(0)#获取第一列
col_values1 = table.col_values(1)#获取第二列
print(col_values0)
print(col_values1)
#获取行数列数
nrows = table.nrows
ncols = table.ncols
print(nrows)#获取行数
print(ncols)#获取列数
#循环行列表数据
for i in range(nrows):#取行
    print(i,table.row_values(i))
for i in range(ncols):#取列
    print(i,table.col_values(i))
#获取单元格值
cell_A11 = table.cell(0,0).value#第一行第一列
cell_A21 = table.cell(1,0).value#第二行第一列
cell_B1 = table.cell(0,1).value#第一行第二列
print(cell_A11)
print(cell_A21)
print(cell_B1)
#使用行列索引
cell_A1 = table.row(0)[0].value#第一行第一个数
cell_A2 = table.col(1)[0].value#第二列第一个数
cell_A3 = table.row(3)[2].value#第四行第三个
print(cell_A1)
print(cell_A2)
print(cell_A3)

2、从指定excelsheet读取某行某列的值

import xlrd
#从指定excelsheet读取某行某列的值
def excel_table_byindex(filepwd,by_index,row,col):
    try:
        date = xlrd.open_workbook(filepwd)
        #获取excel所有sheet数
        lst=date.sheets()
        print(lst)
        num_sheet =len(lst)
        print(num_sheet)
        #判断by_index 是否存在
        if by_index<num_sheet:
            table = date.sheet_by_index(by_index)#查找指定页签
            nrows = table.nrows#获取改页签行数
            ncols = table.ncols#获取该页签列数
            if row<nrows and col<ncols:
                print(table.cell(row-1,col-1).value)
            else:
                print(filepwd+"工作表没有该steet页签")
        else:
            print(filepwd+"工作表没有该steet页签")
    except Exception:
        print("文件不存在")

filepwd='C:\Users\HZQ\Desktop\test.xls'
excel_table_byindex(filepwd,0,1,1)
原文地址:https://www.cnblogs.com/HZQHZA/p/7598766.html