3

Python xlsxwriter系列教程 01

 2 years ago
source link: https://ssjt21.github.io/2018/08/xlsxwriter%E6%A8%A1%E5%9D%9701/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Python xlsxwriter系列教程 01

calendar.png2018-08-23 | 阅读:次

python xlsxwriter 系列教程 01

xlsxwriter介绍

XlsxWriter是一个Python模块,用于以Excel 2007+ XLSX文件格式编写文件。

它可用于将文本,数字和公式写入多个工作表,它支持格式化,图像,图表,页面设置,自动过滤,条件格式等功能。

与其他模块相比

优点

  • 与其他模块相比有更多丰富的功能

  • 高保真,生成的文件可以与Excel生成文件等效

  • 官方文档有比较好的示例

  • 数度快,大文件输出使用更少的内存

官方文档:https://xlsxwriter.readthedocs.io/getting_started.html#getting-started

缺点

  • 不能对现有Excel文件进行读取和修改

xlsxwriter 安装

pip install xlsxwriter
#或者
easy_install XlsxWriter

使用xlsxwriter 创建一个excel

# -*- coding: utf-8 -*-

"""
@author:随时静听
@file: 创建.py
@time: 2018/08/24
@email:[email protected]
"""

#导入xlsxwriter 用于创建xlsx

import xlsxwriter


#创建 一个Workbook 实列
book=xlsxwriter.Workbook(u'员工.xlsx')

#添加一个工作簿
sheet=book.add_worksheet()
#可以指定工作的名字也可以不指定,如果需要指定,按照下面的写法加入参数即可
#再次添加一个名字为 '员工表'工作簿
sheet2=book.add_worksheet(u'员工表')

#写入数据

# 第一个工作簿写入数据

sheet.write("A2",u"序号")#A2单元格写入 序号
#这里的字母A必须大写
sheet.write(1,1,u"姓名") # 第二行 第二列 写入 姓名
sheet.write(1,2,u"报销费用")

#使用循环写数据

expenses = (
    ['Rent', 1000],
    ['Gas',   100],
    ['Food',  300],
    ['Gym',    50],
)

row=2
col=0

for index,item in enumerate(expenses):
    sheet.write(row,col,index+1)#写入序号值
    sheet.write(row,col+1,item[0])#写入姓名
    sheet.write(row,col+2,item[1]) # 报销费用
    row+=1

#合并单元格 写入内容
merge_range='A'+str(row+1)+':B'+str(row+1) #合并单元格的范围,一般都是"A2:B2","A2:D4"这样的格式
print "合并区域是:" ,merge_range
sheet.merge_range(merge_range,u'合计:')

#写入公式
Calculation_formula='=sum(C3:C'+str(row-1)+")"
print "插入计算公式是:", Calculation_formula
sheet.write(row,2,Calculation_formula)

book.close()#关闭

#运行结果
合并区域是: A7:B7
插入计算公式是: =sum(C2:C5)

展示生成的Excel文件

推荐阅读:

转载请注明:随时静听的博客 » 点击阅读原文


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK