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;
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, costin (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 datetimeimport 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, costin (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(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()
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= [
[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模块调用方式详解
Python模块调用方式详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其 ...
python模块之psutil详解
一.psutil模块: 1.psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息 ...
python模块与包详解
<1>.模块:任何 *.py 的文件都可以当作模块使用 import 导入 >>>improt test >>>b=test.a() >> ...
python模块的导入详解
一:一个小问题:什么是模块? 我的理解是:有通用功能的文件的集合. 二:为什么要使用模块? 我们通常为了使自己以前写的东西保存下来,会把东西写入文件中保存下来,必要时我们把这些文件当脚本去执行,也可以 ...
python中argparse模块用法实例详解
python中argparse模块用法实例详解 这篇文章主要介绍了python中argparse模块用法,以实例形式较为详细的分析了argparse模块解析命令行参数的使用技巧,需要的朋友可以参考下 ...
Python中random模块生成随机数详解
Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...
Nginx RTMP 模块 nginx-rtmp-module 指令详解
译序:截至 Jul 8th,2013 官方公布的最新 Nginx RTMP 模块 nginx-rtmp-module 指令详解.指令Corertmp语法:rtmp { ... }上下文:根描述:保存所 ...
Python对Excel操作详解
Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl ...
Python初学者常见错误详解
Python初学者常见错误详解 0.忘记写冒号 在 if.elif.else.for.while.class.def 语句后面忘记添加 “:” if spam == 42 print('Hello ...
随机推荐
rabbitmq集群安装
在配置文件中配置集群没有成功,但是使用命令行成功了,以下是过程请参考. 场景:两台机器,一台是10.1.3.95 hostname为mq1,一台是10.1.3.96 hostname为 ...
shopnc2014年11版数据库字典
shopnc_activity 表注释: 活动表 字段 类型 空 默认 注释 activity_id mediumint(9) 否 id activity_title varchar(255) 否 ...
30天轻松学习javaweb_Range实现断点续传
package com.wzh.test.http; import java.io.FileOutputStream; import java.io.IOException; import java. ...
Thrift框架介绍
1.前言 Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目.Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和 ...
JAVA长连接demo
http://blog.csdn.net/caomiao2006/article/details/38830475 JAVA长连接demo 2014-08-25 23:20 4767人阅读 评论(2) ...
[wikioi]多源最短路
http://wikioi.com/problem/1077/ Floyd算法.精华是三层循环,if (dist(i,k) + dist(k,j) < dist(i,j)) then dist( ...
PHPCMSv9 更改后台地址(测试)
最新发布的PHPCMS V9由于采用了MVC的设计模式,所以它的后台访问地址是固定的,虽然可以通过修改路由配置文件来实现修改,但每次都修改路由配置文件对于我来说有点麻烦了,而且一不小心就会出错.这里使 ...
HttpAsyncClient 的简单使用
下载地址:http://hc.apache.org/downloads.cgi 在NetBeans中导入以下jar文件: 1:一次请求: public static void oneReuest(){ ...
Pie(求最小身高差,dp)
Pie Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
iOS本地推送与远程推送详解
一.简介 分为本地推送和远程推送2种.可以在应用没有打开甚至手机锁屏情况下给用户以提示.它们都需要注册,注册后系统会弹出提示框(如下图)提示用户是否同意,如果同意则正常使用:如果用户不同意则下次打开程 ...