day8 代码操作xls文件
一、xls文件读操作
1、打开excle文件获取工作簿对象
import xlrd
wb = xlrd.open_workbook('files/data1.xls')
2、获取所有工作表的表名
names = wb.sheet_names()
3、获取工作表
- 工作簿对象.sheet_by_name('表名) - -获取指定表名对应的表
- 工作簿对象.sheet_by_index (下标) - 获取指定下标对应的工作表
sheet1 = wb.sheet_by_name('students')
sheet2 = wb.sheet_by_index(1)
4、获取中的最大行和列(有数据部分的行和列)
print(sheet1.nrows)
5、按行获者按列获取
- 工作表.row_values(下标) – 获取指定行所有的数据
- 工作表.col_values(下标) – 获取指定列所有的数据
- 工作表.col_values(列下标,开始行下标,结束行下标)
- 工作表.row_values(行下标,开始列下标,结束列下标)
6、获取指定单元格的数据
- 工作表.cell_value(行下标,列下标)
result = sheet1.cell_value(1,2)
7、练习
import xlrd
# 练习:读excle文件中data1,xls中students表中的数据,得到一个大列表
wb = xlrd.open_workbook('files/data1.xls')
stu_sheet = wb.sheet_by_name('students')
num_row = stu_sheet.nrows #获取行数
datas = []
for index in range(1,num_row):
line = stu_sheet.row_values(index)
datas.append(line)
print(datas)
# 练习:读excle文件中data1,xls中students表中的数据,得到一个大列表,列表中是字典
datas = []
keys = stu_sheet.row_values(0)
for index in range(1,num_row):
line = stu_sheet.row_values(index)
stu = {}
for x in range(len(keys)):
key = keys[x]
value = line[x]
stu[key] = value
datas.append(stu)
print(datas)
二、xls文件写操作
1、新建工作簿
import xlwt
wb= xlwt.Workbook()
2、新建工作表
stu_sheet = wb.add_sheet('students')
3、写入数据
- 工作表.write(行下标,列下标,数据)
stu_sheet.write(2,1,'name')
4、保存文件
wb.save('files/data2.xls')
5、练习
# 写入到data3.xls文件中
# 第一行的内容分别是:name、gender、age、score
# 1.准备数据
data = [
['小明', '男', 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)
# 2. 准备工作表
import xlwt
wb = xlwt.Workbook()
stu_sheet = wb.add_sheet('students')
# 3. 写入数据
# row-x = 0 1 2 3 4
for row_x in range(len(data)):
row_data = data[row_x]
for col_x in range(len(row_data)):
stu_sheet.write(row_x, col_x, row_data[col_x])
# 4.保存数据
wb.save('files/data3.xls')
三、xls添加单元格样式
- 字体相关样式
- 数据准备
import xlwt
wb = xlwt.Workbook()
sheet = wb.add_sheet('各种样式')
sheet.write(0,0,'香蕉')
1、创建样式对象
style1 = xlwt.XFStyle()
2、创建字体对象
font1 = xlwt.Font()
3、将字体关联到样式中
style1.font = font1
4、添加字体相关属性
font1 .name = '宋体' # .name 设置字体名称
font1.height = 22*22 # 设置字体大小
font1.colour_index = 10 # 设置字体颜色
font1.italic =True
5、写入数据时添加样式
sheet.write(1,0,'苹果',style1)
wb.save('files/data4.xls')
- 填充样式
1、创建样式对象
style2 = xlwt.XFStyle()
2、创建填充对象
pattern1 = xlwt.Pattern
3、将填充样式关联到样式对象中
style2.pattern = pattern1
4、设置填充属性
pattern1.pattern = xlwt.Pattern.SOLID_PATTERN # 设置填充模式
pattern1.pattern_fore_colour = 52 # 设置填充颜色
5、写入数据时候添加样式
sheet.write(1,1,'猕猴桃',style2)
- 设置行高和列宽
1、设置列宽
sheet.col(1).width = 30*256
2、设置行高
a :允许设置某一行高度
sheet.row(0).height_mismatch = True
b : 设置指定行的高度
sheet.row(2).height = 40*60