day08 代码操作xls文件

day08 代码操作xls文件

01 xls文件读操作

import xlrd
  1. 打开excel文件获取工作簿对象
wb = xlrd.open_workbook('files/data1.xls')
  1. 获取所有工作表的表名
names = wb.sheet_names()

3.获取工作表

# 工作簿对象.sheet_by_name(表名)  -  获取指定表名对应的工作表
# 工作簿对象.sheet_by_index(下标)  -   获取指定下标对应的工作表

4.获取表的行数和列数(有数据部分的行和列)

print(sheet1.nrows)
print(sheet1.ncols)

5.按行或者按列获取数据

# 工作表.row_values(行下标)       -    获取指定行所有的数据
# 工作表.col_values(列下标)       -    获取指定列所有的数据
# 工作表.row_values(行下标, 开始列下标, 结束列下标) -   获取指定行中指定范围的数据
# 工作表.col_values(列下标, 开始行下标, 结束行下标)  -  获取指定列中指定范围的数据

6.获取指定单元格中的数据

# 工作表.cell_value(行下标, 列下标)

02 xls文件读操作练习

import xlrd
wb = xlrd.open_workbook('files/data1.xls')
stu_sheet = wb.sheet_by_name('students')

1.获取行数量

num_row = stu_sheet.nrows

2.每一行对应一个小列表

datas = []
for index in range(1, num_row):
    line = stu_sheet.row_values(index)
    datas.append(line)

3.每一行对应一个小字典

datas = []
keys = stu_sheet.row_values(0)
# print(keys)
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)

03 xls修改单元格样式

import xlwt
wb = xlwt.Workbook()
sheet = wb.add_sheet('样式')

1.设置单元格的样式

1)创建样式对象

style1 = xlwt.XFStyle()

2)添加字体样式

font1 = xlwt.Font()
font1.name = '黑体'
font1.bold = True
font1.height = 20*20
font1.colour_index = 12
style1.font = font1

3)添加边框样式

b1 = xlwt.Borders()
b1.bottom = 10
b1.bottom_colour = 16
style1.borders = b1

4)添加对齐样式

style2 = xlwt.XFStyle()
al1 = xlwt.Alignment()
al1.vert = xlwt.Alignment.VERT_CENTER
al1.horz = xlwt.Alignment.HORZ_CENTER
al1.rota = 90
style2.alignment = al1

5)添加填充样式

p1 = xlwt.Pattern()
p1.pattern = xlwt.Pattern.SOLID_PATTERN
p1.pattern_fore_colour = 13
style1.pattern = p1

sheet.write(0, 0, '名字', style=style1)
sheet.write(2, 3, '对齐格式', style=style2)

6)合并单元格

# 工作表.write_merge(行下标1, 行下标2, 列下标1,列下标2, 数据, 样式)
sheet.write_merge(8, 8, 2, 6, 'hello', style1)
sheet.write_merge(12, 22, 2, 7, 'hello', style2)

7)设置列的宽度和行的高度

# 1)设置列的宽度
sheet.col(0).width = 30*256

# 2)设置行的高度
# 运行指定的行可以设置高度
sheet.row(0).height_mismatch = True
# 设置行的高度
sheet.row(0).height = 30*60
wb.save('files/example2.xls')

04 xls文件设置单元格样式

import xlwt

注意:xlwt设置样式的时候,如果需要颜色值(字体颜色、填充颜色、边框颜色),
颜色值只能使用xlwt.Style.colour_map中提供的颜色值

print(xlwt.Style.colour_map)

{'aqua': 49, 'black': 8, 'blue': 12, 'blue_gray': 54, 'blue_grey': 54, 
'bright_green': 11, 'brown': 60, 'coral': 29, 'cyan_ega': 15, 'dark_blue': 18, 
'dark_blue_ega': 18, 'dark_green': 58, 'dark_green_ega': 17, 'dark_purple': 28, 
'dark_red': 16, 'dark_red_ega': 16, 'dark_teal': 56, 'dark_yellow': 19, 'gold': 51, 
'gray_ega': 23, 'grey_ega': 23, 'gray25': 22, 'grey25': 22, 'gray40': 55, 'grey40': 55, 
'gray50': 23, 'grey50': 23, 'gray80': 63, 'grey80': 63, 'green': 17, 'ice_blue': 31,
 'indigo': 62, 'ivory': 26, 'lavender': 46, 'light_blue': 48, 'light_green': 42, 
'light_orange': 52, 'light_turquoise': 41, 'light_yellow': 43, 'lime': 50, 
'magenta_ega': 14, 'ocean_blue': 30, 'olive_ega': 19, 'olive_green': 59, 
'orange': 53, 'pale_blue': 44, 'periwinkle': 24, 'pink': 14, 'plum': 61, 
'purple_ega': 20, 'red': 10, 'rose': 45, 'sea_green': 57, 'silver_ega': 22, 
'sky_blue': 40, 'tan': 47, 'teal': 21, 'teal_ega': 21, 'turquoise': 15, 
'violet': 20, 'white': 9, 'yellow': 13}

字体相关样式:

1.创建样式对象

style1 = xlwt.XFStyle()

2.创建字体对象

font1 = xlwt.Font()

3.将字体对象关联到样式对象中

style1.font = font1

4.设置字体相关属性

font1.name = '宋体'    # 设置字体名称
font1.height = 20*20        # 设置字体大小
font1.colour_index = 28     # 设置字体颜色
font1.bold = True           # 是否加粗
font1.italic = True         # 是否倾斜

5.写入数据的时候添加样式

sheet.write(1, 0, '苹果', style1)

填充相关样式:

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(0).width = 50 * 256

2.设置行高

# 1) 允许设置某一行的高度
sheet.row(2).height_mismatch = True

# 2) 设置指定行的高度
sheet.row(2).height = 40*60

wb.save('files/data4.xls')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值