Xlsx是python用来构造xlsx文件的模块,可以向excel2007+中写text,numbers,formulas 公式以及hyperlinks超链接。

可以完成xlsx文件的自动化构造,包括:

合并单元格,制作excel图表等功能:

1,Introduction:

xlsxWriter支持多种excle功能;与excel完美兼容;写大文件,速度快且只占用很小的内存空间

不支持读或者改现有的excel文件

2, Installing:

sudo pip install XlsxWriter;

sudo easy_install XlsxWriter;

或者源码安装:http://github.com/jmcnamara/XlsxWriter/archive/master.tar.gz

3,使用:

import xlsxwriter

workbook = xlsxwriter.Workbook('hello.xlsx') # 建立文件

worksheet = workbook.add_worksheet() # 建立sheet, 可以work.add_worksheet('employee')来指定sheet名,但中文名会报UnicodeDecodeErro的错误

worksheet.write('A1', 'Hello world') # 向A1写入

workbook.close()

excel公式计算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Some data we want to write to the worksheet.
expenses = (
    ['Rent'1000],
    ['Gas',   100],
    ['Food',  300],
    ['Gym',    50],
)
 
# Start from the first cell. Rows and columns are zero indexed. 按标号写入是从0开始的,按绝对位置'A1'写入是从1开始的
row = 0
col = 0
 
# Iterate over the data and write it out row by row.
for item, cost in (expenses):
    worksheet.write(row, col,     item)
    worksheet.write(row, col + 1, cost)
    row += 1
 
# Write a total using a formula.
worksheet.write(row, 0'Total')
worksheet.write(row, 1'=SUM(B1:B4)')    # 调用excel的公式表达式
 
workbook.close()

excel自定义格式:

import xlsxwriter

 # 建文件及sheet.
workbook = xlsxwriter.Workbook('Expenses02.xlsx')
worksheet = workbook.add_worksheet() # Add a bold format to use to highlight cells. 设置粗体,默认是False
bold = workbook.add_format({'bold': True}) # Add a number format for cells with money. 定义数字格式
money = workbook.add_format({'num_format': '$#,##0'}) # Write some data headers. 带自定义粗体blod格式写表头
worksheet.write('A1', 'Item', bold)
worksheet.write('B1', 'Cost', bold) # Some data we want to write to the worksheet.
expenses = (
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
) # Start from the first cell below the headers.
row = 1
col = 0 # Iterate over the data and write it out row by row.
for item, cost in (expenses):
worksheet.write(row, col, item) # 带默认格式写入
worksheet.write(row, col + 1, cost, money) # 带自定义money格式写入
row += 1 # Write a total using a formula.
worksheet.write(row, 0, 'Total', bold)
worksheet.write(row, 1, '=SUM(B2:B5)', money) workbook.close()

excel写入时间格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
from datetime import datetime
 import xlsxwriter
 
 # Create a workbook and add a worksheet.
 workbook = xlsxwriter.Workbook('Expenses03.xlsx')
 worksheet = workbook.add_worksheet()
 
 # Add a bold format to use to highlight cells.
 bold = workbook.add_format({'bold'1})
 
 # Add a number format for cells with money.
 money_format = workbook.add_format({'num_format''$#,##0'})
 
 # Add an Excel date format.
 date_format = workbook.add_format({'num_format''mmmm d yyyy'})
 
 # Adjust the column width.
 worksheet.set_column(1115)
 
 # Write some data headers.
 worksheet.write('A1''Item', bold)
 worksheet.write('B1''Date', bold)
 worksheet.write('C1''Cost', bold)
 
 # Some data we want to write to the worksheet.
 expenses = (
     ['Rent''2013-01-13'1000],
     ['Gas',  '2013-01-14',  100],
     ['Food''2013-01-16',  300],
     ['Gym',  '2013-01-20',   50],
 )
 
 # Start from the first cell below the headers.
 row = 1
 col = 0
 
 for item, date_str, cost in (expenses):
     # Convert the date string into a datetime object.
     date = datetime.strptime(date_str, "%Y-%m-%d")
 
     worksheet.write_string  (row, col,     item              )
     worksheet.write_datetime(row, col + 1, date, date_format )
     worksheet.write_number  (row, col + 2, cost, money_format)
     row += 1
 
 # Write a total using a formula.
 worksheet.write(row, 0'Total', bold)
 worksheet.write(row, 2'=SUM(C2:C5)', money_format)
 
 workbook.close()

@@@ write方法提供了python类型到excel类型的转换, XlsxWriter支持excel工作表最大1048576行记录,16384条列记录,超出可以选择再建新sheet

1
2
3
4
5
6
7
worksheet.write(00'Hello')          # write_string()
worksheet.write(10'World')          # write_string()
worksheet.write(202)                # write_number()
worksheet.write(303.00001)          # write_number()
worksheet.write(40'=SIN(PI()/4)')   # write_formula()
worksheet.write(50, '')               # write_blank()
worksheet.write(60None)             # write_blank()

关于更多字符串、数字、颜色及位置等excel格式:http://xlsxwriter.readthedocs.io/format.html

4, 图标

这个是我比较关注的利用excel工具进行图标统计的功能

相比较python的matplotlib的画图模块,excel的图标更加漂亮灵活一些

Chart: Area, Bar, Column, Doughnut, Line, Pie, Scatter, Stock, Radar

workbook = xlswriter.Workbook('chart.xls')

worksheet = workbook.add_sheet('First_example')  # 普通工作表

建立Chart对象: chart = workbook.add_chart({type, 'column'})

将图插入到sheet中: worksheet.insert_chart('A7', chart)

或者可以建立图表工作表chartsheet

chartsheet = workbook.add_charsheet()

chartsheet.set_char(chart)

柱状图:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import xlsxwriter
 
workbook = xlsxwriter.Workbook('chart.xlsx')
worksheet = workbook.add_worksheet()
 
# Create a new Chart object.
chart = workbook.add_chart({'type''column'})
 
# Write some data to add to plot on the chart.
data = [
    [12345],
    [246810],
    [3691215],
]
 
worksheet.write_column('A1', data[0])  # 按列插入
worksheet.write_column('B1', data[1])
worksheet.write_column('C1', data[2])
 
# Configure the chart. In simplest case we add one or more data series.
chart.add_series({'values''=Sheet1!$A$1:$A$5'})
chart.add_series({'values''=Sheet1!$B$1:$B$5'})
chart.add_series({'values''=Sheet1!$C$1:$C$5'})
 
# Insert the chart into the worksheet.
worksheet.insert_chart('A7', chart)
 
workbook.close()

workbook.add_chart({'type':'column'}) # 默认格式

workbook.add_chart({'type':'column', 'substyle':'percent_stacked'})  # 按百分比展示

workbook.add_chart({'type':'column', 'substyle':'stacked'})

其他类型chart也是这样:


python模块之XlsxWriter 详解的更多相关文章

  1. Python模块调用方式详解

    Python模块调用方式详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其 ...

  2. python模块之psutil详解

    一.psutil模块: 1.psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息 ...

  3. python模块与包详解

    <1>.模块:任何  *.py 的文件都可以当作模块使用 import 导入 >>>improt test >>>b=test.a() >> ...

  4. python模块的导入详解

    一:一个小问题:什么是模块? 我的理解是:有通用功能的文件的集合. 二:为什么要使用模块? 我们通常为了使自己以前写的东西保存下来,会把东西写入文件中保存下来,必要时我们把这些文件当脚本去执行,也可以 ...

  5. python中argparse模块用法实例详解

    python中argparse模块用法实例详解 这篇文章主要介绍了python中argparse模块用法,以实例形式较为详细的分析了argparse模块解析命令行参数的使用技巧,需要的朋友可以参考下 ...

  6. Python中random模块生成随机数详解

    Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...

  7. Nginx RTMP 模块 nginx-rtmp-module 指令详解

    译序:截至 Jul 8th,2013 官方公布的最新 Nginx RTMP 模块 nginx-rtmp-module 指令详解.指令Corertmp语法:rtmp { ... }上下文:根描述:保存所 ...

  8. Python对Excel操作详解

      Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl   ...

  9. Python初学者常见错误详解

    Python初学者常见错误详解 0.忘记写冒号 在 if.elif.else.for.while.class.def 语句后面忘记添加 “:”   if spam == 42 print('Hello ...

随机推荐

  1. Quadro P5200 - 最强大的移动工作站显卡 专门为了惠普 VR Z 背包电脑而发布

    https://www.leiphone.com/news/201708/Z1MCetuoobEaHIqa.html 前言 在今年的计算机图形技术顶会 SIGGRAPH,英伟达并不是在单纯地展示自家的 ...

  2. 文本相似性计算总结(余弦定理,simhash)及代码

    最近在工作中要处理好多文本文档,要求找出和每个文档的相识的文档.通过查找资料总结如下几个计算方法: 1.余弦相似性 我举一个例子来说明,什么是"余弦相似性". 为了简单起见,我们先 ...

  3. HTML5移动web横屏字体变大

    html{ -webkit-text-size-adjust:none; -ms-text-size-adjust:none; -moz--text-size-adjust:none; text-si ...

  4. cocos2dx坐标系

    原文转载:http://blog.csdn.net/ejet_shen/article/details/17327223 cocos2dx坐标系 支持下面几种坐标系: 1.屏幕坐标系 原点在左上角,X ...

  5. 《Go并发编程实战》第2版 紧跟Go的1.8版本号

    文章作者:郝林(<Go并发编程实战 (第2版)>作者) 最终来了! 经过出版社的各位编辑.校对.排版伙伴与我的N轮PK和共同努力,<Go并发编程实战>第2版的全部内容最终全然确 ...

  6. oracle中database links的使用

    1.在pl/sql developer中创建database links 2.使用database links select * from table1@xtbg 注意:@xtbg是database ...

  7. bash中的命令基本操作

    1.命令行编辑功能 命令行编辑功能是指用户可以使用方向键前后移动光标,并编辑已经输入的命令,这个命令非常实用.方便. 提示:可能大多数读者都没有使用过不带命令行编辑功能的shell,有兴趣的读者可以使 ...

  8. taro 填坑之路(二)taro 通过事件监听 实现组件间传值

    1.组件传值的方式 2.事件监听原理 3.事件管理器 utils/event.js /** * 事件池(事件管理器) * 通过事件监听传值 */ class Event { constructor() ...

  9. Vue 源码 基础知识点

    1.数据类型判断 const _toString = Object.prototype.toString function toRawType(value) { return _toString.ca ...

  10. mysql.ini 配置

    #记录所有sql语句 log=E:/mysqllog/mysql.log #记录数据库启动关闭信息,以及运行过程中产生的错误信息 log-error=E:/mysqllog/myerror.log # ...