官网Tutorial:http://xlsxwriter.readthedocs.io/tutorial

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公式计算

# 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写入时间格式

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(1, 1, 15) # 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

worksheet.write(0, 0, 'Hello')          # write_string()
worksheet.write(1, 0, 'World') # write_string()
worksheet.write(2, 0, 2) # write_number()
worksheet.write(3, 0, 3.00001) # write_number()
worksheet.write(4, 0, '=SIN(PI()/4)') # write_formula()
worksheet.write(5, 0, '') # write_blank()
worksheet.write(6, 0, None) # 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)

柱状图:

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 = [
[1, 2, 3, 4, 5],
[2, 4, 6, 8, 10],
[3, 6, 9, 12, 15],
] 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模块:xlsxwriter和xlrd相结合读取、写入excel文件

    python模块简单说明: xlsxwriter:负责写入数据 xlrd:负责读取数据 xlsxwriter 官方文档:http://xlsxwriter.readthedocs.org 本实例是刚写 ...

  2. python模块:xlsxwriter和xlrd相结合读取

    python模块简单说明: xlsxwriter:负责写入数据 xlrd:负责读取数据 xlsxwriter 官方文档:http://xlsxwriter.readthedocs.org 本实例是刚写 ...

  3. python模块之XlsxWriter 详解

    Xlsx是python用来构造xlsx文件的模块,可以向excel2007+中写text,numbers,formulas 公式以及hyperlinks超链接. 可以完成xlsx文件的自动化构造,包括 ...

  4. python 导出数据到excel 中,一个好用的导出数据到excel模块,XlsxWriter

    最近公司有项目需要导出数据到excel,首先想到了,tablib,xlwt,xlrd,xlwings,win32com[还可以操作word],openpyxl,等模块但是 实际操作中tablib 写入 ...

  5. python模块大全

    python模块大全2018年01月25日 13:38:55 mcj1314bb 阅读数:3049 pymatgen multidict yarl regex gvar tifffile jupyte ...

  6. [转]Python 模块收集

    Python 模块收集 转自:http://kuanghy.github.io/2017/04/04/python-modules Python | Apr 4, 2017 | python 工具 a ...

  7. 使用C/C++写Python模块

    最近看开源项目时学习了一下用C/C++写python模块,顺便把学习进行一下总结,废话少说直接开始: 环境:windows.python2.78.VS2010或MingW 1 创建VC工程 (1) 打 ...

  8. Python模块之configpraser

    Python模块之configpraser   一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...

  9. Python模块之"prettytable"

    Python模块之"prettytable" 摘要: Python通过prettytable模块可以将输出内容如表格方式整齐的输出.(对于用Python操作数据库会经常用到) 1. ...

随机推荐

  1. 【bzoj1257】[CQOI2007]余数之和sum 数论

    题目描述 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值,其中k mod i表示k除以i的余数.例如j(5, 3)=3 m ...

  2. 【题解】CQOI2017老C的键盘

    建议大家还是不要阅读此文了,因为我觉得这题我的解法实在是又不高效又不优美……只是想要记录一下,毕竟是除了中国象棋之外自己做出的组合dp第一题~ 首先如果做题做得多,比较熟练的话,应该能一眼看出这题所给 ...

  3. Boosting&Bagging

    Boosting&Bagging 集成学习方法不是单独的一个机器学习算法,而是通过构建多个机器学习算法来达到一个强学习器.集成学习可以用来进行分类,回归,特征选取和异常点检测等.随机森林算法就 ...

  4. [Leetcode] combinations 组合

    Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For exampl ...

  5. BZOJ5323 [Jxoi2018]游戏 【数论/数学】

    题目链接 BZOJ5323 题解 有一些数是不能被别的数筛掉的 这些数出现最晚的位置就是该排列的\(t(p)\) 所以我们只需找出所有这些数,线性筛一下即可,设有\(m\)个 然后枚举最后的位置 \[ ...

  6. [SDOI2010]星际竞速——费用流

    类似于最短路的网络流,而且还要保证每个点经过一次,拆点就比较方便了. 连边怎么连?要保证最大流是n(每个点经过一次)还要能从直接跳转 将每个点拆点.源点向每个点的入点连一条容量为1费用为0的边.源点向 ...

  7. 【bzoj2141】排队 [国家集训队2011]排队(魏铭) 树套树 线段树套替罪羊树

    这个题就是动态偏序对,每次操作做两个删除两个插入就好了. #include<cstdio> #include<iostream> #include<cstring> ...

  8. 洛谷P1546 最短网络 Agri-Net

    P1546 最短网络 Agri-Net 526通过 959提交 题目提供者JOHNKRAM 标签图论贪心USACO 难度普及/提高- 提交该题 讨论 题解 记录 最新讨论 50分C++代码,求解 请指 ...

  9. 1040: [ZJOI2008]骑士~基环外向树dp

    Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里,在和平环境中 ...

  10. js 内置对象属性及方法

    1.Date 属性(1): constructor      所建立对象的函数参考 prototype       能够为对象加入的属性和方法 方法(43): getDay()        返回一周 ...