python创建xlsx文件_用 python 来操作 docx, xlsx 格式文件(一)(使用 xlsxwriter 库操作xlsx格式文件)...

需要从数据库读取日志生成相应的 docx,xlsx 文件做相应的记录

所以自然要用到docx, xlsxwriter 库

但是这些库的应用场景非常广泛,任何需要对 word,excel 文件执行重复性操作的工作,都可以使用 python 来帮我们完成

xlsxwriter 库

文章结构:

一、xlsxwriter 基本用法,创建 xlsx 文件并添加数据

二、xlsxwriter 格式处理,将待添加数据转换成相应的格式,添加到 xlsx 文件中

三、xlsxwriter 添加表格,在 xlsx 文件中添加表格

四、深入理解格式(Format Class),并运用

一、xlsxwriter 基本用法,创建 xlsx 文件并添加数据

官方文档:http://xlsxwriter.readthedocs.org/

xlsxwriter 可以操作 xls 格式文件

注意:xlsxwriter 只能创建新文件,不可以修改原有文件。如果创建新文件时与原有文件同名,则会覆盖原有文件

Linux 下安装: sudo pip install XlsxWriter

Windows 下安装: pip install XlsxWriter

基本用法:

1 #!/usr/bin/python

2 #coding: utf-8

3

4 importxlsxwriter5

6 #创建一个新的xlsx文件(如果原有同名文件会被覆盖)

7 workbook = xlsxwriter.Workbook("Expenses01.xlsx")8

9 #创建一个新的表单,默认名称为 “sheet1”,输入字符参数可指定名称

10 worksheet =workbook.add_worksheet()11

12 expenses =(13 ['Rent', 1000],14 ['Gas' , 100],15 ['Food', 300],16 ['Gym' , 50],17 )18

19 #worksheet 默认是从0行、0列开始计数

20 row =021 col =022

23 #worksheet.write 方法将数据写入 xlsx 表格中

24 #参数依次为:行号、列号、数据、[格式]

25 for item, cost in(expenses):26 worksheet.write(row, col , item)27 worksheet.write(row, col + 1, cost)28 row += 1

29

30 #显式关闭workbook,若不显式指定,则作用域结束后自动关闭

31 workbook.close()

效果展示:

842654-20160311112214897-267559316.png

二、xlsxwriter 格式处理,将待添加数据转换成相应的格式,添加到 xlsx 文件中

先设置格式,使用方法:workbook.add_format

再指定格式写入,使用方法:worksheet.write_string

1 #!/usr/bin/python

2 #coding: utf-8

3

4 from datetime importdatetime5 importxlsxwriter6

7 workbook = xlsxwriter.Workbook('Expenses02.xlsx')8 worksheet =workbook.add_worksheet()9

10 #设定格式,等号左边格式名称自定义,字典中格式为指定选项

11 #bold:加粗,num_format:数字格式

12 bold_format = workbook.add_format({'bold':True})13 money_format = workbook.add_format({'num_format':'$#,##0'})14 date_format =workbook.add_format({'num_format':'mmmm d yyyy'})15

16 #将二行二列设置宽度为15(从0开始)

17 worksheet.set_column(1, 1, 15)18

19 #用符号标记位置,例如:A列1行

20 worksheet.write('A1', 'Item', bold_format)21 worksheet.write('B1', 'Cost', bold_format)22 worksheet.write('C1', 'Cost', bold_format)23

24 expenses =(25 ['Rent', '2016-03-11', 1000],26 ['Gad', '2016-03-12', 100],27 ['Food', '2016-03-13', 400],28 ['Gym', '2016-03-14', 50],29 )30

31 row = 1

32 col =033

34 for item, date_str, cost in(expenses):35 #将数据格式转化为Python datetime.datetime 格式

36 #之后用write_datetime方法录入日期格式

37 date = datetime.strptime(date_str, "%Y-%m-%d")38

39 #使用write_string方法,指定数据格式写入数据

40 worksheet.write_string(row, col, item)41 worksheet.write_datetime(row, col + 1, date, date_format)42 worksheet.write_number(row, col + 2, cost, money_format)43 row += 1

44

45 worksheet.write(row, 0, 'Total', bold_format)46 worksheet.write(row, 1, '=SUM(B2:B5)', money_format)47

48 workbook.close()

效果展示:

842654-20160311144335069-542311298.png

写入日期格式时,指定对象要是 Python 的 datetime.datetime 格式

使用 workbook.add_format 绑定时,可以指定如下格式

842654-20160311144644616-790312057.png

三、xlsxwriter 添加表格,在 xlsx 文件中添加表格

1 #!/usr/bin/python

2 #coding: utf-8

3

4 importxlsxwriter5

6 workbook = xlsxwriter.Workbook('chart.xlsx')7 worksheet =workbook.add_worksheet()8

9 #新建图标对象

10 chart = workbook.add_chart({'type': 'column'})11

12 #向 excel 中写入数据,建立图标时要用到

13 data =[14 [1, 2, 3, 4, 5],15 [2, 4, 6, 8, 10],16 [3, 6, 9, 12, 15],17 ]18

19 worksheet.write_column('A1', data[0])20 worksheet.write_column('B1', data[1])21 worksheet.write_column('C1', data[2])22

23 #向图表中添加数据,例如第一行为:将A1~A5的数据转化为图表

24 chart.add_series({'values': '=Sheet1!$A$1:$A$5'})25 chart.add_series({'values': '=Sheet1!$B$1:$B$5'})26 chart.add_series({'values': '=Sheet1!$C$1:$C$5'})27

28 #将图标插入表单中

29 worksheet.insert_chart('A7', chart)30

31 workbook.close()

效果展示:

842654-20160315150844740-687683979.png

四、更多可用的单元格式对象(Format Class)

ecxel 中每一个单元,都有如下属性:字体(fonts)、颜色(colors)、模式(patterns)、边界(borders)、alignment、number formatting

设置属性:

format =workbook.add_format()#用对象接口设置格式属性

format.set_bold()

format.set_font_color('red')#用字典设置格式属性

property ={'bold': True,'font_color': 'red'}

format= workbook.add_format(property)

更多相关参见:http://xlsxwriter.readthedocs.org/format.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值