学习-xlsxwriter模块
Xlsx是python用来构造xlsx文件的模块,可以向excel2007+中写text,numbers,formulas 公式以及hyperlinks超链接。
可以完成xlsx文件的自动化构造,包括:
合并单元格,制作excel图表等功能:
- import xlsxwriter
- # Create an new Excel file and add a worksheet.
- workbook = xlsxwriter.Workbook('demo.xlsx') #创建工作簿
- worksheet = workbook.add_worksheet() #创建工作表
- # Widen the first column to make the text clearer.
- worksheet.set_column('A:A', 20) #设置一列或者多列单元属性
- # Add a bold format to use to highlight cells.
- bold = workbook.add_format({'bold': True}) #在工作表中创建一个新的格式对象来格式化单元格,实现加粗
- # Write some simple text.
- worksheet.write('A1', 'Hello') #工总表写入简单文本
- # Text with formatting.
- worksheet.write('A2', 'World', bold) #工作表写入带有格式的文本,加粗
- # Write some numbers, with row/column notation. #按照坐标写入
- worksheet.write(2, 0, 123)
- worksheet.write(3, 0, 123.456)
- # Insert an image.
- worksheet.insert_image('B5', 'logo.png') #插入图片
- workbook.close() #关闭工作薄
安装方式:pip install XlsxWriter
方法详细解释:
1.workbook类
定义:Workbook(filename[,options])
该类创建一个XlsxWriter的Workbook对象。Workbook代表整个电子表格文件,并且存储在磁盘上。filename为字符串类型,表示创建的excel文件存储路径;
- options:为dict类型,是可选参数,一般作为初始化工作表内容格式
add_worksheet
add_worksheet([sheetname])方法,用于添加一个新的工作表,sheetname为工作表名称,默认是sheet1,例如:
- worksheet1 = workbook.add_worksheet() #sheet1
- worksheet2 = workbook.add_worksheet('test') #test
- worksheet3 = workbook.add_worksheet('data') #data
- worksheet4 = workbook.add_worksheet() #sheet4
add_format
add_format([properties])方法,用于在工作表中创建一个新的格式对象来格式化单元格
- properties:为dict类型,为指定一个格式属性的字典
例如设置一个加粗的格式对象如下:
- bold = workbook.add_format({'bold': True})
- 等价的语句如下:
- bold = workbook.add_format()
- bold.set_bold()
add_chart
add_chart(options)方法,用于在工作表中创建一个图表对象,内部是通过insert_chart()方法来实现的,参数为dict类型,是为图标指定一个字典属性。
例如设置一个线条行的图表对象,代码如下:
- chart = workbook.add_chart({'type': 'line'})1
close
close()方法,作用是关闭工作表文件,如:
- workbook.close()
2.Worksheet类
代表一个excel工作表,是比较核心的一个类。Worksheet对象不能直接实例化,而是通过Workbook对象调用add_worksheet()方法来创建,常见的方法如下:
write
write(row, col, *args)方法:是用来将普通数据写入单元格中。
- row:行坐标;
- col:列坐标; 坐标索引起始值为0
- *args:无名字参数为数据内容,可为数字,公式,字符串或格式对象
为了简化不同数据类型的写入过程,write方法已作为其他更加具体的数据类型方法的别名,如:
- write.string():写入字符串类型数据
- wirte_number():写入数字型数据
- write_blank():写入空类型数据
- write_formula():写入公式型数据
- write_datetime():写入日期型数据
- wirte_boolean():写入逻辑型数据
- write_url():写入超链接型数据
set_row
set_row(row, height, cell_format, options)方法,用于设定行单元格的属性。
- row:指定行位置,起始下标为0;
- height:为float类型,设定行高,单位像素;
- cell_format:format类型,指定对象格式;
- options,字典类型,设置行hidden(隐藏)、level(组合分级)、collpsed(折叠)
示例如下:
- worksheet2.write('A1', 'hello')
- bold = workbook.add_format({'bold': True}) # 设定A1行高40,加粗
- worksheet2.set_row(0, 40, bold) # 隐藏第二行
- worksheet2.set_row(1, None, None, {'hidden': True})
set_column
set_column(first_col, last_col, width, cell_format, options)方法,用于设置一列或多列单元格的属性
- first_col:整型,指定开始列位置,起始下标为0;
- last_col:整型,指定结束列位置,起始下标为0;
- width:float类型,设置列宽;
- cell_format:format类型,指定格式对象;
- options:dict类型,设置hidden(隐藏)、level(组合分级)、collpsed(折叠);
示例如下:
- worksheet2.write('A1', 'hello')
- worksheet2.write('B1', 'world')
- bold = workbook.add_format({'bold': True}) # 设定列A到B单元格宽度10像素,加粗
- worksheet2.set_column(0, 1, 10, bold) # 设置C到D单元格宽度20像素
- worksheet2.set_column('C:D', 20)
- 隐藏E到G单元格
- worksheet2.set_column('E:G', None, None, {'hidden': 1})
insert_image
insert_image(row, col, image[, options])方法,用于插入图片到指定的单元格,支持PNG,JPEG,BMP等多种格式。
- row:行坐标,起始索引值为0;
- col:列坐标,起始索引值为0;
- image:string类型,是图片路径;
- options:dict类型,是可选参数,用于指定图片位置,如URL等信息;
示例如下:
- # 在B5单元格插入python-logo.png图片,超链接为http://python.org
- worksheet1.insert_image('B5', 'img/python-logo.png', {'url': 'http://python.org'})12
chart类
chart类实图表组件,支持包括面积、条形图、柱状图、折线图、散点图等,一个图表对象是通过Workbook的add_chart方法创建,通过{type, ‘图表类型’}字典来制定图表类型,示例如下:
- # 创建一个column(柱形)图表
- chart = workbook.add_chart({type, 'column'})12
常见的图表样式如下:
- area:面积样式的图表
- bar:条形图
- column:柱状图
- line:线条样式的图表
- pie:饼形图
- scatter:散点图
- stock:股票样式的图表
- radar:雷达样式的图表
然后通过Worksheet的insert_chart()方法插入到指定位置,示例如下:
几个常用方法如下:
add_series
chart.add_series(options)方法:用于添加一个数据系列的图表,参数options为字典类型,用于设置图表系列选项的字典,示例如下:
- chart.add_series({
- 'categories': '=Sheet1!$A$1:$A$5',
- 'values': '=Sheet1!$B$1:$B$5',
- 'line': {'color': 'red'},
- })12345
add_series的常用三个选项:
- categories:设置图表类别标签范围;
- values:设置图表数据范围;
- line:设置图表线条属性,包括宽度、颜色等;
set_x_axis
set_x_axis(options)方法,设置图表X轴选项,示例如下:
- chart.set_x_axis({ 'name': 'x name', 'name_font': {'size': 14, 'bold': True} 'num_font': {'italic': True}
- })12345
- name:设置x轴名称;
- name_font:设置x轴字体;
- num_font:设置x轴数字字体属性;
set_size
set_size(options)方法,用于设置图表大小,示例如下:
- chart.set_size({'width': 720, 'height': 576})1
- width:设置宽度;
- height:设置高度;
set_title
set_title(options)方法,设置图表标题,示例如下:
- chart.set_title({'name': 'test'})1
set_style
set_style(style_id)方法,用于设置图表样式,style_id为不同数字代表不同样式,示例如下:
- chart.set_style(37)1
set_table
set_table(options)方法,设置x轴为数据表格式。示例如下:
- chart.set_table()
学习-xlsxwriter模块的更多相关文章
- python学习之模块:xlsxwriter
1.安装xlsxwriter模块 pip install xlsxwriter 2.使用 import xlsxwriter workbook = xlsxwriter.Workbook('hello ...
- python通过xlsxwriter模块将文字写入xlsx文件
#今天和大家一起学习通过python的xlsxwriter模块 xlsxwriter模块主要用来生成excel表格,插入数据.插入图标等表格操作等. 环境:python 3 1)安装 xlsxwrit ...
- python3 写excel文件 xlsxwriter模块
之前一直用这个传说中可以让python飞起来的xlwings模块来写入excel文件,今天发现xlsxwriter模块,发现这才是飞起来的feel!! 使用体验对比: xlwings:写入7000+单 ...
- Python学习--Selenium模块
1. Python学习--Selenium模块介绍(1) 2.Python学习--Selenium模块学习(2) 其他: 1. Python学习--打码平台
- Python学习--Selenium模块学习(2)
Selenium的基本操作 获取浏览器驱动寻找方式 1. 通过手动指定浏览器驱动路径2. 通过 `$PATH`环境变量找寻浏览器驱动 可参考Python学习--Selenium模块简单介绍(1) 控制 ...
- Node学习HTTP模块(HTTP 服务器与客户端)
Node学习HTTP模块(HTTP 服务器与客户端) Node.js 标准库提供了 http 模块,其中封装了一个高效的 HTTP 服务器和一个简易的HTTP 客户端.http.Server 是一个基 ...
- Python学习---重点模块的学习【all】
time [时间模块] import time # print(help(time)) # time模块的帮助 print(time.time()) # 时间戳 print(time.cloc ...
- python学习——常用模块
在学习常用模块时我们应该知道模块和包是什么,关于模块和包会单独写一篇随笔,下面先来了解有关在python中的几个常用模块. 一.什么是模块 常见的场景:一个模块就是一个包含了python定义和声明的文 ...
- python xlwt 与 xlsxwriter 模块差别
Xlwt 模块有一个bug, 就是所用样式过多的话,之后的数据将使用不了样式,相反xlsxwriter 模块 不会有此问题. 用Xlwt模块的同学们,请务必转换用xlsxwriter模块 !!!!!! ...
随机推荐
- day20.序列化模块
参考云游道士:https://www.cnblogs.com/yyds/p/6563608.html 1.什么是序列化 序列化就是将字典,数字等数据类型转换为字符串数据类型 所说的序列就是字符串 2. ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(CMS)-第一章 入门篇-开篇及总体规划
.NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划 原文地址:https://www.cnblogs.com/yilezhu/p/9977862.html 写在前面 千呼万唤始出来 ...
- 什么是nrm
什么是nrm nrm 是一个 npm 源管理器,允许你快速地在 npm 源间切换. 安装nrm 在命令行执行命令,npm install -g nrm,全局安装nrm. 使用 执行命令nrm ls查看 ...
- 【转发】如何使用NPM?CNPM又是什么?
转发:https://www.jianshu.com/p/f581cf9360a2 背景介绍 什么是npm? npm(node package manager)是nodejs的包管理器,用于node插 ...
- 小白的学习之路(hello wold!)
Hello word ! 一直想写博客,但是都拖延了,正好两天有假期就开始弄这个事情了.开始觉得写博客也没有什么,一路学习以来都是看别人的博客进行学习,也收藏了不少博客,学到了不少东西,所以我觉的博客 ...
- Hive中的Order by与关系型数据库中的order by语句的异同点
在Hive中,ORDER BY语句是对查询结果集进行整体的排序,最终将会产生一个reducer进行全局的排序,达到的最终结果是和传统的关系型数据库是一样的. 在数据量非常大的时候,全局排序的单个red ...
- VB6进行GZIP解压&C#进行GZIP压缩和解压
VB进行GZIP解压的,DLL是系统的,如果没有 [点击下载] Option Explicit 'GZIP API '----------------------------------------- ...
- java代码的编译、执行过程
Java代码编译是由Java源码编译器来完成,流程图如下所示: Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码 ...
- css实用属性
background-size: 100% 100%; 背景通过拉伸实现填充 自适应 overflow: hidden; ...
- js根据顺序加载,有依赖关系
function loadScript(url, callback) { var script = document.createElement("script"); script ...