python学习-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()    #关闭工作薄

方法详细解释:

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()

原文地址:http://blog.51cto.com/11555417/2096688

时间: 2024-10-30 08:16:36

python学习-xlsxwriter模块的相关文章

python学习--创建模块

昨天做了python客户端和服务器端通信,并把接收到的信息写到数据库,因为对数据库进行操作是个经常调用的行为,所以我想把调用数据库的操作写成一个module来给其它python程序调用,所以将昨天的服务器端程序拆分为两个文件: 1.主程序python.py #!/usr/bin/env python import socket import json import connmysql s = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0) h

windows下安装Python的XlsxWriter模块

在windows环境下安装python的XlsxWriter模块,虽然很简单,但由于自己粗心,少了一个字符,导致不少的错误... 1.通过pip命令来安装. C:\Users\Administrator>pip install XlsWriter Collecting XlsWriter Could not find a version that satisfies the requirement XlsWriter (from versions: ) No matching distribut

Python学习--Selenium模块学习(2)

Selenium的基本操作 获取浏览器驱动寻找方式 1. 通过手动指定浏览器驱动路径2. 通过 `$PATH`环境变量找寻浏览器驱动 可参考Python学习--Selenium模块简单介绍(1) 控制浏览器访问URL browser.get(https://www.baidu.com/)   find系列函数定位元素 - `find_element_by_xxx` 返回第一个符合条件 `WebElement` - `find_elements_by_xxx` 返回符合条件所有元素包含了`WebE

Python学习--Selenium模块

1. Python学习--Selenium模块介绍(1) 2.Python学习--Selenium模块学习(2) 其他: 1. Python学习--打码平台 原文地址:https://www.cnblogs.com/ftl1012/p/seleniumAll.html

python学习之模块:xlsxwriter (一)

1.安装xlsxwriter模块 pip install xlsxwriter 2. 基本功能 import xlsxwriter #导入模块 workbook = xlsxwriter.Workbook('new_excel.xlsx') #新建excel表 worksheet = workbook.add_worksheet('sheet1') #新建sheet(sheet的名称为"sheet1") headings = ['Number','testA','testB'] #设置

PYTHON学习第二模块 python内置模块介绍

1 >>> import time 2 >>> time.time() 3 1491064723.808669 4 >>> # time.time()返回当前时间的时间戳timestamp(定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数)的方法,无参数 5 >>> time.asctime() 6 'Sun Apr 2 00:39:32 2017' 7 >>> # time.asctim

Python学习(22):模块

转自 http://www.cnblogs.com/BeginMan/p/3183656.html 一.模块基础 1.模块 自我包含,且有组织的代码片段就是模块 模块是Pyhon最高级别的程序组织单元,它将程序代码和数据封装起来以便重用.实际的角度,模块往往对应Python程序文件. 每个文件都是一个模块,并且模块导入其他模块之后就可以使用导入模块定义的变量名.模块可以由两个语句和一个重要的内置函数进行处理. import: 使客户端(导入者)以一个整体获取一个模块. from:容许客户端从一个

Python学习笔记-模块

模块: 顶层文件(也是模块文件) 模块文件 模块在物理形式上表现为.py结尾的代码文件 Python中,模块本身也是对象,所以模块也有变量,函数,类 在一个模块的顶层定义的所有变量都在被导入时成为了被导入模块的属性 查看标准库模块: help('modules') 顶层文件:包含了程序的主要控制流程 模块文件:为顶层文件或其他模块提供各种功能组件 import module [,module1[,module2]]语句    导入模块 导入指定的整个模块,包括生成一个以模块名命名的名称空间 导入

Python学习笔记-模块介绍(三)-模块包和搜索路径

一个python文件就是一个模块,使用独立的命名空间,但实际使用过程中单单用模块来定义python功能显然还不够.因为一个大型的系统几千上万个模块是很正常的事情,如果都聚集在一起显然不好管理并且有命名冲突的可能,因此python中也出现了一个包的概念. 一.python中的包介绍 包是通过使用"点模块名称"创建Python模块命名空间的一种方法.列如,模块名称 A.B 表示一个在名为 A的包下的名为B的子模块.就像使用模块让不同模块的作者无需担心彼此全局变量名称(冲突)一样,点模块名称