Python自动化之Excel处理

Python自动化之Excel处理


前言

Excel处理模块有三个:xlrd, xlwt和wlsxwriter.其中xlrd是用来读取Excel文件,xlwt与wlsxwriter用来写入Excel文件。(xlwt一般用来处理xls文件,xlsxwriter一般用来处理xlsx文件)

一、xlrd模块

1. 模块的安装

安装指令如下所示,注意需要安装1.2版本的,如果不指定则安装2.0.1版本,该版本无法读取xlsx文件。

pip install xlrd=1.2

2.模块的使用

# 打开Excel文件
wb = xlrd.open_workbook("文件名")
# 获得工作表对象
ws = wb.sheet_by_index(0) # 按工作表序号选取第1个表
# ws = wb.sheet_by_name('Sheet1') # 按工作表名称选择名为Sheet1的表
# 工作表行数
ws_row_num = ws.nrows
# 获取工作表第一行的内容
row1 = ws.row(0) # 返回的是一个列表,列表内的元素是对象,对象包含了单元格的信息
# 如果要想知道第一行第一列的单元格的值 value0 = row1[0].value (对象调用value属性)
row1 = ws.row_values(0) # 直接工作表第一行的内容(没有格式等其他信息,不是对象)
# 得到单元格的长度
ws.row_len(0)
# 获取行内元素的类型
ws.row_types(0)

二、xlwt模块

1.模块的安装

pip install xlwt

2.模块的使用

# 创建工作簿对象
wb = xlwt.Workbook()
# 创建工作表
ws = wb.add_sheet('Sheet1')
# 写入数据
ws.write(i, j, '数据') # i为行数,j为列数,'数据'后还能加入样式
# 合并写入
ws.write_merge(0, 1, 0, 5, "内容") # 合并1-2行,1-6列,写入“内容”,同样可以加入样式
# 保存(此时才会执行写入)
wb.save("test.xls")
#####################上面是基本结构,下面是样式部分######################
# 设计工作表里title的样式
title_style = xlwt.XFStyle()
# 设置字体样式
title_font = xlwt.Font()
title_font.name = "宋体"
title_font.bold = True
title_font.height = 12 * 20
title_font.colour_index = 0x08
title_style.font = title_font
# 设置对齐
title_align = xlwt.Alignment()
# 居中对齐
title_align.horz = 0x02
title_align.vert = 0x01
title_style.alignment = title_align
# 设置边框
title_border = xlwt.Borders()
title_border.left = 0x02
title_border.right = 0x02
title_border.top = 0x02
title_border.bottom = 0x02
title_style.borders = title_border
# 设计工作表里data的样式
data_style = xlwt.XFStyle()
# 水平居中
data_align = xlwt.Alignment()
data_align.vert = 0x02
data_align.horz = 0x01
data_style.alignment = data_align
# 背景颜色
bgcolor = xlwt.Pattern()
bgcolor.pattern = xlwt.Pattern.SOLID_PATTERN
bgcolor.pattern_fore_colour = 0x16
data_style.pattern = bgcolor
# 边框
data_border = xlwt.Borders()
data_border.left = 0x02
data_border.right = 0x02
data_border.top = 0x02
data_border.bottom = 0x02
data_style.borders = data_border
# 样式写完后,在结构写入中加上即可,如:
ws.write(0, 0, '数据',title) # 在第一行第一列处写入,格式是title对应的格式

三、xlsxwriter模块

1.模块的安装

python的基础库,不用安装

2.模块的使用

# 创建工作簿对象,设置保存路径
wb = xlsxwriter.Workbook("./test.xlsx")
# 创建工作表对象
ws = wb.add_worksheet("Sheet1")
# 写入数据
ws.write(0, 0, "数据") # 在第1行第一列写入“数据”
ws.write_column(1,0, [1, 1, 1]) # 在二行第一列开始按列写入1,1,1
ws.write_row(1,1,[1, 1, 1]) # 在第二行第二列开始按行写入1,1,1
# 保存,这行是真正执行的行
wb.close()
#########################基本结构如上,以下是设置格式与生成图标##########################
# 格式
style = wb.add_format({
        "fg_color": "yellow",  # 单元格的背景颜色
        "bold": 1,             # 字体加粗
        "align": "center",     # 对齐方式
        "valign": "vcenter",   # 字体对齐方式
        "font_color": "red"    # 字体颜色
    })
# 添加格式的方式和xlwt相似
ws.write(0,0,"数据",style) # 在第1行第一列写入“数据”,格式为style对应的格式
# 调用公式
ws.write(row, col, '=SUM(B6:D6)') # 在第row+1行,第col+1列写入B6到D6和求和的结果
###########################################################
# 插入Excel图表
# 生成图表对象
chart = wb.add_chart({"type": "column"})
  # column 柱状图
  # area面积图
  # bar 条形图
  # line折现图
  # radar雷达图
  # 添加数据
  chart.add_series(
        {"name": "标题",  # 标题
         "categories": "=Score!$B$1:$D$1",  # 统计项名称 工作簿名称+数据
         "values": "=Score!$B$2:$D$2",  # 统计值 工作簿名称+数据
         "line": {"color": "black", "bold": True}  # 柱子边颜色
         }
    )
# 插入图表
worksheet.insert_chart("A11", chart)

总结

介绍了xlwt,xlrd与xlsxwriter模块,其中xlrd用来读excle文档,xlwt用来处理xls文件,wlsxwriter用来处理xlsx文件。wlsxwriter还能用来生成统计图表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值