一、安装 XlsxWriter

使用命令:

pip3 install xlsxwriter

image

二、验证是否安装成功

新建一个 .py 文件,输入下面代码:

import xlsxwriter

workbook = xlsxwriter.Workbook('hello.xlsx')

worksheet = workbook.add_worksheet()

worksheet.write('A1', 'Hello world')

workbook.close()

运行程序,会发现同级目录下生成了一个 hello.xlsx 文件:

image

打开 hello.xlsx 文件,发现内容如下,表示安装成功:

image

三、创建一个简单的 XLSX 文件

假设我们有一些月度支出的数据,我们希望将其转换为 Excel XLSX 文件:

expenses = (

['Rent', 1000],

['Gas', 100],

['Food', 300],

['Gym', 50],

)

下面是代码:

import xlsxwriter

# Create a workbook and add a worksheet.

# 创建一个工作簿并添加一张工作表

workbook = xlsxwriter.Workbook('Expenses01.xlsx')

worksheet = workbook.add_worksheet()

# 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

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)')

workbook.close()

运行程序,看到生成了 Expenses01.xlsx 文件,打开看到以下内容:

image

四、代码详解

下面开始详细解释上面的程序代码。

第一步是导入包:

import xlsxwriter

使用 Workbook() 创建一个工作簿,参数是工作簿的名字:

workbook = xlsxwriter.Workbook('Expenses01.xlsx')

注意:XlsxWriter 只能创建文件,不能读取或修改现有的文件。

然后使用 add_worksheet() 来添加一张工作表:

worksheet = workbook.add_worksheet()

默认工作表的名称是 Sheet1,Sheet2 等,但是也可以指定名称:

worksheet1 = workbook.add_worksheet() # Defaults to Sheet1.

worksheet2 = workbook.add_worksheet('Data') # Data.

worksheet3 = workbook.add_worksheet() # Defaults to Sheet3.

我们使用工作表对象通过 write() 方法来写入数据:

worksheet.write(row, col, some_data)

注意:在 XlsxWriter 中,行和列都是零索引。第一个单元格 A1 是 (0, 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

添加一个公式来计算第二列中的项目总和:

worksheet.write(row, 1, '=SUM(B1:B4)')

最后,通过 close() 方法关闭 Excel 文件:

workbook.close()

现在,就生成了一个 xlsx 文件,可以通过 Excel 和其他电子表格应用读取。

五、将不同类型的数据写入 XLSX 文件

上一个程序创建了一个使用 Python 和 XlsxWriter 模块格式化的简单电子表格。

这次扩展要写的数据,包括一些日期:

expenses = (

['Rent', '2013-01-13', 1000],

['Gas', '2013-01-14', 100],

['Food', '2013-01-16', 300],

['Gym', '2013-01-20', 50],

)

这里的区别是,添加了一个带有格式的日期列,并使该列稍宽以适应日期。

因此,代码如下:

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.

# 添加 Excel 日期格式

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()

这个程序和上一个程序的区别是:为日期添加了一个新的 Format 对象,对数据类型有额外处理。

Excel 对待不同类型的输入数据,例如字符串和数字,处理通常不同,虽然通常对于用户是透明的。XlsxWriter 视图用 worksheet.write() 方法模拟这一点,通过将 Python 数据类型映射到 Excel 支持的类型上。

write() 方法作为几个更具体方法的通用别名:

write_string()

write_number()

write_blank()

write_formula()

write_datetime()

write_boolean()

write_url()

在这里的代码中,我们使用了这些方法中的一些来处理不同类型的数据:

worksheet.write_string (row, col, item )

worksheet.write_datetime(row, col + 1, date, date_format )

worksheet.write_number (row, col + 2, cost, money_format)

这主要是为了展示如果你需要更多的控制你写入工作表中的数据,你可以使用恰当的方法。在这个简单的例子里,write() 方法事实上解决得很好。

对于程序来说日期处理也是新的 。

Excel 中的日期和时间是应用了数字格式的浮点数,方便以正确的格式显示它们。如果日期和时间是 Python datetime 对象,那么 XlsxWriter 会自动进行所需的数字转换。但是,我们还需要添加数字格式来确保 Excel 将其显示为日期:

from datetime import datetime

...

date_format = workbook.add_format({'num_format': 'mmmm d yyyy'})

...

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_datetime(row, col + 1, date, date_format )

...

最后需要 set_column() 来调整 B 列的宽度以便于日期可以清晰地展示:

# Adjust the column width.

worksheet.set_column('B:B', 15)

运行程序,看到生成了 Expenses03.xlsx 文件,打开看到以下内容:

image

六、参考教程

python导入xlsxwriter要安装什么吗_Python 模块:XlsxWriter 的使用相关推荐

  1. python开发环境的安装与配置_Python开发环境的安装配置

    要学习Python,我们首先要安装配置好Python的运行环境. 那么安装Python 2 还是 Python 3 呢? 当然是要选择Python 3 .这里来教大家安装稳定版Python3 的版本是 ...

  2. python包和目录有什么不同_python模块和包的区别

    在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很 ...

  3. python导入标准库对象的语句_Python项目中如何优雅的import

    Python项目中如何优雅的import 前言 之前有一篇关于Python编码规范的随笔, 但是写的比较杂乱, 因为提到了import语句, 在篇文章中, 我专门来讲Python项目中如何更好的imp ...

  4. python权限不够cmd安装不了_python环境配置+matplotlib

    1.python下载官方网址:https://www.python.org/downloads/windows/ 2.配置环境 进入cmd输入:path=%path%;D:python D:pytho ...

  5. python简单计算器下载安装到手机_python计算器app下载

    Python计算器安卓版非常有意思,采用了python语言来为你完成一个不错的内容体验.其中的玩法是比较丰富的,而且还可以为你提供更多的内容.欢迎来当易网下载! python计算器最新版简介: 这是基 ...

  6. python导入excel表格给列命名_Python中对 Excel 的相关详细操作(读取、写入、指定行、指定列、新增sheet工作表)...

    工作中用到这点,就简单的整理了一下 目录 一.准备cateContent.xlsx工作簿 二.Python中关于Excel表格常用操作总结: 2.1  读取相关的操作 2.2  写入的相关操作: 三. ...

  7. python导入数据画直方图加正态曲线_Python数据分析入门 - 正态分布

    import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplotlib inline #matplotli ...

  8. python导入文件夹数据有改动_python办公自动化--批量修改文件/文件夹名称

    导语 今天我们来看下如何批量修改名称.这个需求在工作中比较常见的,日常生活中可能也有此类需求,比如,打包下载了一部连续剧或有声读物,每个文件名却被加上了网址.网站名称,还有一些莫名其妙的符号,整得特别 ...

  9. python自动安装windows软件_python模块 - pywinauto(windows自动化安装软件)

    GUI 窗口查询工具 spy++lite pywinauto 模块 原理: https://www.cnblogs.com/testlife007/p/4710599.html pywhinayto ...

最新文章

  1. 【不容错过】12月10日:纳米孔测序科研团队大会NCM 2020亚太区特别专场
  2. 雷林鹏分享:Redis 管道技术
  3. 下巴痤疮的治疗方法有哪些?
  4. hog svm 视频 matlab,matlab版hog+svm图像二分类
  5. leetcode-121-买卖股票的最佳时机
  6. Python 读写文件和file对象(转)
  7. 关于模板引擎handlebars.js基本用法
  8. java代码测试---插入排序和选择排序
  9. 合并两个有序链表,合并后依然有序(C语言)
  10. Kibana 的安装(Windows版本)新手入门
  11. 职称计算机考试word2003真题,职称计算机考试《Word2003》历年真题回顾(1)
  12. matlab中结束脚本运行_MATLAB脱单指南
  13. 手机linux比windows省电,为什么win10比ubuntu省电?
  14. Java程序员必经的实践之路:Java中高级核心知识全面解析(11)
  15. 360安全卫士默认浏览器设置 360默认浏览器设置 锁定浏览器
  16. 计算机控制系统编程语言,可编程控制器常用的几种编程语言
  17. 公网远程Everything快速搜索私有云资料【内网穿透】
  18. 苹果手机没声音了显示耳机模式_Airpods Pro 安卓苹果双机体验
  19. 如何通过python多线程抓取所有东方财富股票信息
  20. Python Web 框架-Django day07

热门文章

  1. HDOJ(HDU) 2139 Calculate the formula(水题,又一个用JavaAC不了的题目)
  2. 数据仓库专题18-数据建模语言IDEF(转载)
  3. linux下的主要目录
  4. 实际运维中处理的事故问题
  5. linux求文件共有行。多个文件求共有行交集完全匹配-w
  6. 利用PermutationImportance挑选变量
  7. k-means优化 k-means距离的选择 k-medoids对比
  8. 决策树Decision Tree
  9. 跨网文件摆渡如何满足不同安全要求?
  10. Python发送邮件(带附件)