注册 登录
Python办公自动化

第一章: 搞定Excel自动化

第二章: 搞定Word自动化

第三章: 搞定Email自动化

首页 > Python办公自动化 > 第一章: 搞定Excel自动化 > 1.4节: 使用xlsxwriter模块写Excel

1.4节: 使用xlsxwriter模块写Excel

薯条老师 2022-09-05 15:44:21 12574 0

编辑 收藏

广州番禺Python, Java小班周末班培训

薯条老师的线下Python小班办得很好,学员的平均就业薪资有11K。线下小班培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6

1.4.1 xlsxwriter模块简介

xlsxwriter用来生成excel文件,生成的excel文件完全兼容Excel xlsx格式。xlsxwriter模块提供了诸多丰富的功能,不仅可以写入文本、数值类的表单数据,支持单元格合并,数据格式化等操作,还能插入统计类的直方图,饼图等。

1.4.2 安装xlsxwriter

在windows系统中通过以下步骤来安装xlsxwriter模块:

(1) 按下键盘中的windows键,输入cmd命令,进入到windows命令行

(2) 在命令行执行pip install xlsxwriter,安装xlsxwriter模块

image.png

1.4.3 xlsxwriter模块常用操作

(1) 获取workbook

 xlsxwriter.Workbook(filename)

(1)filename表示excel文件的路径,

(2)返回xlsxwriter.workbook.Workbook对象

代码实例:

import xlsxwriter
workbook = xlsxwriter.Workbook("demo.xlsx")

(2) 添加工作表Sheet

获得workbook以后,可通过add_worksheet方法添加工作表:

workbook.add_worksheet(name=None)

 参数name表示sheet的名称,如未指定则设置默认值"Sheet1"。该方法返回一个worksheet对象

代码实例:

import xlsxwriter
workbook = xlsxwriter.Workbook("demo.xlsx")
worksheet = workbook.add_worksheet("烹饪清单")

(3) 设置工作表列宽

获得worksheet对象以后,可通过set_column方法设置列宽:


worksheet.set_column(column, width)

 形参column传递的是列名的字符串,可以同时设置多个列,列名以:进行分隔,例如:"A:B",表示同时设置第一列与第二列的列宽。width用来指定列宽,单位为像素。

代码实例:

import xlsxwriter
workbook = xlsxwriter.Workbook("demo.xlsx")
worksheet = workbook.add_worksheet("烹饪清单")
workseet.set_column("A:E", 20)


(4) 写入文本,数值等数据

获得worksheet对象以后,可通过以下方法写入数据:

Worksheet.write_string(column, value,format)

 形参column传递的是列名的字符串, value是写入的字符串,format是一个格式化对象。列名的格式为列名符号+列索引,例如A0表示第一列中的第一个单元格,A1表示第一列中的第二个单元格,以此类推。

Worksheet.write_string(row, column, value, format)

形参row传递的是行索引, column传递的是列索引,value是待写入的字符串, format是一个格式化对象。

Worksheet.write_number(column, value, format)

用法同write_string(column, value, format)方法,只不过写入的是数值

Worksheet.write_number(row,column,value, format)

用法同write_string(row, column, value, format)方法,只不过写入的是数值

(5) 对单元格进行格式化

先通过Workbook对象添加一个格式化对象:Workbook.add_format(format),format传递的是字典类型。format格式举例:

format = {      
     'font_size':20, # 设置字体大小
    'bold': True, # 设置字体是否加粗
'border': 0,  # 设置边框宽度     
'align': 'center', # 设置水平对齐方式     
'valign': 'vcenter', # 设置垂直对齐方式
# 更多的格式属性,同学们可以查阅官方文档。官方文档链接:https://xlsxwriter.readthedocs.io/
}

获得了format对象以后,在对单元格进行操作时,再传递这个format对象,例如:

work_sheet.write_string(0, 0, '测试',format)

(6) 对单元格进行合并

获得worksheet对象以后,可通过以下方法合并单元格:

Worksheet.merge_range(columns, value,format)

 形参columns传递的是要合并的列名, 

格式为列名:列名。例如A0:B0,指的是将第一列的第一个单元格与第二列的第二个单元格进行合并。value是待写入的内容,format是一个格式化对象。

代码实例:

import xlsxwriter
workbook = xlsxwriter.Workbook("demo.xlsx")
worksheet = workbook.add_worksheet("烹饪清单")
workseet.merge_range("A0:C1", "茄子") # 将A0与C1之间的所有单元格合并,并写入茄子

(7) 在Excel中绘制图表

xlsxwriter提供了Chart类来绘制图表,其支持的图表类型有条形图,柱状图,饼图,散点图等。通过Workbook对象的add_chart方法来获取chart对象:

Workbook.add_chart(options)

 options为字典类型,参数格式举例:{'type': 'bar'}。键名type用来指定图表的类型,以下为常用的类型字段值:

① area:区域样式图表  ② bar: 条形图 ③ column:列样式图表,比如直方图

④ line: 折线图 ⑤ pie:饼图 ⑥ scatter:散点图 ⑦ radar:雷达图 

构造了图表对象以后,通过以下方法来设置图表的选项:

Chart.add_series(options)

 设置系列选项,options的主要字段->name:名称;categories:类别标签;values:取值列表

Chart.set_title(options)

 设置标题选项,options的主要字段->name:图表标题;name_font:字体属性;

layout:标题布局

Chart.set_x_axis(options)

设置图表的X轴选项,options的主要字段->name:x轴标题;name_font:字体属性

Chart.set_y_axis(options)

设置图表的y轴选项,options的主要字段同set_x_axis方法

Chat.set_style(style_id)

设置图表样式,style_id的值可查找官方问答

Chat.set_size(options)

设置图表的尺寸,options的主要字段->width:宽度;height:高度

(8) 合并与插入图表

Chart对象提供combine方法,以合并其它图表:

Chart.combine(chart)

 将Chart对象所指向的图表与参数chart指向的图表合并

通过worksheet对象的insert_chart方法将图表插入到sheet:

Worksheet.insert_chart(cell, chart, options)

 参数cell表示要插入的单元格位置,chart表示待插入的图表,options为字典类型,参数格式举例:{'x_offset': 10, 'y_offset': 10}, x_offset表示水平偏移量,y_offset表示垂直偏移量

1.4.4 最具实力的小班培训

来这里参加Python和Java小班培训的学员大部分都找到了很好的工作,平均月薪有11K,学得好的同学,拿到的会更高。由于是小班教学,所以薯条老师有精力把每位学员都教好。打算参加线下小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪11K-20K, 免费领取课程大纲
(4) Python大数据分析,量化投资就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取Python学习资料:

扫码领学习资料.jpg


欢迎 发表评论:

请登录

忘记密码我要注册

注册账号

已有账号?请登录