python模块XlsxWriter

官网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也是这样:

				
时间: 2024-10-13 08:35:18

python模块XlsxWriter的相关文章

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

Creating Excel files with Python and XlsxWriter——Introduction

XlsxWriter 是用来写Excel2007版本以上的xlsx文件的Python模块. XlsxWriter 在供选择的可以写Excel的Python模块中有自己的优缺点. #--------------------------------------------------------------------------------------- 优点: 1. 它支持相比其他模块而言更多的Excel 特征: 2. 它生成的Excel文件有很高的保真度,大多数情况下生成的文件和Excel生成

python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

1.双层装饰器 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = False   def check_log(func): def inner(): res = func() if LOGIN_INFO: print('验证成功!') return res else: print('验证失败!') return inner   def check_admin(func)

Python模块的交叉引用问题分析

实际项目中遇到python模块相互引用问题,查资料,说是通过import局部导入的方式可以避免错误,资料如附录所述. 但更改后测试还是会出错,很疑惑!? 如果哪位读者有好的解决方法,敬请留言说明,谢谢. 所以,最好的方法是不进行交叉引用,如果需要就单独分一个模块出来. 附录:Python模块的交叉引用问题解读:How can I have modules that mutually import each other? 有下面两个文件相互引用,Python解释器报错. foo.py: from

python模块以及导入出现ImportError: No module named 'xxx'问题

python模块以及导入出现ImportError: No module named 'xxx'问题 python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包.只要模 块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用 如果你要使用的模块(py文件)和当前模块在同一目录,只要import相应的文件名就好,比 如在a.py中使用b.py:  import b 但是如果要import一个不同目录的文件(例如b.py)该怎么做

python模块搜索路径

1.电脑版 (1).python安装目录中\Lib\site-packages\下建立*.pth文件,写入模块路径 (2).添加环境变量:变量名:pythonpath;变量值:模块(文件夹)路径 ,若有多个,用半角分号";"隔开 2.手机版 在resource\site.py文件中添加代码段 import syssys.path.append("模块(文件夹)路径") 发现:第一个参数都是C:\\resource 我的理解: 程序安装盘下的site.py指定模块路径

4.python模块

python 字符串 一.注释 在python中的注释分为单行注释和多行注释    (1)单行注释:为在语句的前边加"#" 例子: #!/usr/bin/env python a = 123 print a #print a #print a #print a 执行结果如下: [[email protected] ~]# python a.py 123  (2)多行注释:可以用3对单引号(比如:''' 注释内容''') 或是3对双引号(比如:"""注释内容

使用 from import方法导入Python模块

比如我们导入一个数学计算的模块 math: >>> import math>>> print math<module 'math' (built-in)>>>>>>> print math.pi #导出圆周率的值3.14159265359>>> 我们导入math模块,在python模块学习中我们会知道,这样做会得到名math的对象,这个模块对象包含了pi这样的常量,以及一些其它的方法. 我们如果直接访问

Python 八、Python模块

一.python文件概述 1.python模块概述 可以将代码量较大的程序分割成多个有组织的.彼此独立但又能互相交互的代码片段,这些自我包含的有组织的代码段就是模块 模块在物理形势上表现为以.py结尾的代码文件 一个文件被看作一个独立的模块,一个模块也可以被看作是一个文件 模块的文件名就是模块的名字加上扩展名(.py) 每个模块都有自己的名称空间 python允许导入其它模块以实现代码重用,从而也实现了将独立的代码文件组织成更大的程序系统 python中,模块也是对象 在一个模块的顶层定义的所有