一、xls文件读操作(第三方库 xlrd)
1、打开: wb= xlrd.open_workbook(文件路径)
impord xlrd
wb= xlrd.open_workbook('./files/data1.xls')
2、获取所有工作表的表名: 工作簿.sheet_names()
names = wb.sheet_names()
3、获取工作表
1. wb.sheets() -
2. wb.sheet_by_index(下标) -
3. wb.sheet_by_name(表名) -
sheet1=wb.sheet_by_name('students')
4、获取表的最大行号和列号 :工作表.nrows,工作表.ncols
5、按行或者列获取所有的数据:
sheet1.row_values(1)
sheet1.col_values(1)
sheet1.col_values(1,m,n)
6、获取指定单元格的数据:工作表.cell_value(行下标,列下标)
list1=[]
for x in range(1,sheet1.nrows):
list1.append(sheet1.row_value(x))
list2 =[]
for row in range(1,sheet1.nrows) :
stu={}
msg = sheet1.row_values(row)
for col in range(0,sheet1.ncols):
stu[sheet1.cell_value(0,col)]= msg[col]
list2.append(stu)
二、xls文件写操作
1、新建一个工作簿对象:xlwt.Workbook()
import xlwt
wb=xlwt.Workbook()
2、工作簿对象:add_sheet(表名) - 在工作簿中新建⼀个工作表
sheet1 = wb.add_sheet('students')
3、保存:工作簿对象.save(⽂件路径) - 将工作簿对象对应的Excel文件保存到指定位置(文件必须保存成xls格式的)
wb.save('./files/data2.xls')
4、工作表对象.write(行下标, 列下标, 内容) - 将指定内容写入到指定单元格
sheet1.write(0,0,'姓名')
sheet1.write(0,1,'学号')
sheet1.write(0,2,'年龄')
sheet1.write(0,3,'性别')
data = [['name','gender','age','score']
['小明', '男', 20.0, 99.0],
['张三', '男', 25.0, 87.0],
['小花', '女', 22.0, 95.0],
['老王', '男', 30.0, 77.0]
]
line1 = ['name','gender','age','score']
data. insert(0,line1)
import xlwt
wb=xlwt.Workbook()
sheet3 = wb.add_sheet('students')
for row in range(len(data)):
msg=data[x]
for col in range(len(msg)):
sheet3.write(row,col,msg[col])
wb.save('./files/data4.xls')
三、xls文件设置格式
1、设置字体样式
import xlwt
wb=xlwt.Workbook()
sheet = wb.add_sheet('各种样式')
style1 = xlwt.XFStyle()
font1 = xlwt.Font()
style1.font=font1
font1.name='黑体'
font1.height=20*20
font1.colour_index= 2
font1.bold = True
font1.italic =True
sheet.write(0,0,'香蕉')
sheet.write(0,1,'苹果',style1)
2、填充颜色
style2 = xlwt.XFStyle()
pattern1 = xlwt.Pattern()
style2.pattern = pattern1
pattern1.pattern =xlwt.Pattern.SOLID_PATTERN
pattern1.pattern_fore_colour= 52
sheet.write(1,1,'猕猴桃',style=style2)
3、设置行高和列宽
sheet.col(0).width = 15*256
sheet.row(0).height_mismatch = True
sheet.row(0).height = 30*60
wb.save('./files/data5.xls')