知识基础
1、xlrd模块和xlswriter模块 用来操作excel文件**
(1) xlrd模块 读excel文件
打开文件指针:fh=xlrd.open_workbook()
注意:如果文件名中有中文,加r,分隔符用’’
返回所有工作表名: fh.sheet_names()
检查某个sheet是否导入完毕 fh.sheet_loaded(name or index)
获取所有工作表对象:fh.sheets()
获取工作表的个数:len(fh.sheets())
获取某个工作表:
table=fh.sheets()[0] **索引获取
table=fh.sheet_by_index(index) **索引获取
table=fh.sheet_by_name(name) **表名获取
对行操作
获取行数: table.nrows
返回某行所有单元格组成的列表 table.row(index) **格式[数据类型:值,数据类型:值]
table.row_values(index)
table.row_types(index)
对列操作 row->col
对单元格操作
获取某个单元格对象:table.cell(index,index) table.cell_value
table.cell_type
(2) xlwt模块 写excel文件
创建workbook:wbk=xlwt.Workbook(encoding=“utf-8”);
添加sheet:sheet=wbk.add_sheet(“表1”)
写入数据:sheet.write(0,0,“lanlan”);
保存:wbk.save(‘F:/UserFolder/Desktop/one.csv’)
代码展示:(合并excel文件)
import xlrd,xlwt
xlsx_all=["F:/UserFolder/Desktop/test1.xlsx","F:/UserFolder/Desktop/测试2.xlsx"];#待合并的文件
#定义函数 打开文件
def open_xlss(file):
try:
fh=xlrd.open_workbook(file);
return fh;
except Exception as ec:
print(ec);
#获取某个文件某个sheet表内容
def getfile(fh,index):
table=fh.sheet_by_index(index);
nrows=table.nrows;#获取行数
sheetdata=[];
for i in range(nrows):
rdata=table.row_values(i);#每行内容
rvalue.append(rdata);
sheetdata.append(rdata);#过渡
filevalue.append(sheetdata);
rvalue=[] #一行一行的存在列表里 二维
filevalue=[] #一个sheet一个sheet存在列表里 三维
#正文
for j in range(len(xlsx_all)):
fh=open_xlss(xlsx_all[j]);#打开第一个文件
n=len(fh.sheets())#获取sheet数
for i in range(n):
getfile(fh,i);#调用函数
#写入:
wbk=xlwt.Workbook(encoding="utf-8");#打开工作攻坚
sheet=wbk.add_sheet("表1");#添加sheet表
nn=len(rvalue)#写入的行数
for i in range(nn):
mm=len(rvalue[i]);#每一行的列数
for j in range(mm):
sheet.write(i,j,rvalue[i][j])#写入
wbk.save('F:/UserFolder/Desktop/one.csv');#保存