在python中,对excel表格读,写,追加数据,用以下三个模块:
1、wlrd 读取excel表中的数据
2、xlwt 创建一个全新的excel文件,然后对这个文件进行写入内容以及保存。
3、xlutils 读入一个excel文件,然后进行修改或追加,不能操作xlsx,只能操作xls。
一、读excel表
读excel要用到xlrd模块
1、导入模块
import xlrd
2、打开excel文件
table = data.sheets()[0] #通过索引顺序获取 table = data.sheet_by_index(0) #通过索引顺序获取 table = data.sheet_by_name(u'Sheet1')#通过名称获取
代码如下:
import xlrd data = xlrd.open_workbook(r"C:Users907968Desktop est.xlsx") table1 = data.sheets()[0] table2 = data.sheet_by_index(0) table3=data.sheet_by_name(u'Sheet1') print(table1) print(table2) print(table3)
返回:
<xlrd.sheet.Sheet object at 0x0000000002F7F208> <xlrd.sheet.Sheet object at 0x0000000002F7F208> <xlrd.sheet.Sheet object at 0x0000000002F7F208>
3、获取行数和列数
import xlrd data = xlrd.open_workbook(r"C:Users907968Desktop est.xlsx") table = data.sheets()[0] nrows = table.nrows ncols = table.ncols print("行数:%d 列数:%d"%(nrows,ncols))
返回:
1 行数:13 2 列数:3
4、获取整行和整列的值,以列表形式返回
rows = table.row_values(0) cols = table.col_values(0) print("rows:%s cols:%s"%(rows,cols))
返回:
rows:['A1', 'B1', 'C1'] cols:['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'A10', 'A11', 'A12', 'A13']
5、获取单元格数据
cell_A1 = table.cell_value(0,0) cell_C4 = table.cell_value(3,2) print("A1:%s C4:%s"%(cell_A1,cell_C4))
返回:
A1:A1
C4:C4
还可以使用行列索引来获取单元格数据
cell_A1 = table.row(0)[0].value cell_C4 = table.col(2)[3].value print("A1:%s C4:%s"%(cell_A1,cell_C4))
返回:
1 A1:A1 2 C4:C4
三、写excel操作
1、导入:
1 import xlwt
2、创建workbook
workbook = xlwt.Workbook(encoding='utf-8', style_compression=0)
encoding:设置字符编码,一般要这样设置:w = Workbook(encoding=’utf-8’),就可以在excel中输出中文了。默认是ascii
style_compression:表示是否压缩,不常用。
3、创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格
sheet = workbook.add_sheet('test', cell_overwrite_ok=True)
其中的test是这张表的名字,cell_overwrite_ok,表示是否可以覆盖单元格,其实是Worksheet实例化的一个参数,默认值是False
4、向表中添加数据
1 sheet.write(0, 0, 'EnglishName') # 其中的'0-行, 0-列'指定表中的单元,'EnglishName'是向该单元写入的内容 2 sheet.write(1, 0, 'Marcovaldo') 3 txt1 = '中文名字' 4 sheet.write(0, 1, txt1) 5 txt2 = '马可瓦多' 6 sheet.write(1, 1, txt2)
5、保存
1 workbook.save(r'e: est1.xls')
四、追加数据
1 import xlrd 2 import xlutils.copy 3 data = xlrd.open_workbook(r'C:Users907968Desktop est222.xls') 4 ws = xlutils.copy.copy(data) 5 table=ws.get_sheet(0) 6 table.write(0,3,'D1') 7 ws.save(r'C:Users907968Desktop est222.xls')
追加前:
1 A1 B1 C1
追加后:
1 A1 B1 C1 D1
sheet = workbook.add_sheet('test', cell_overwrite_ok=True)