详解Python中xlsxwriter库的基本操作

 更新时间:2023年11月18日 08:28:07   作者:悬崖上的金鱼  
xlsxwriter是一个用于创建和修改Excel文件(.xlsx)的Python库,它提供了丰富的功能,可以创建复杂的Excel工作簿,本文为大家介绍了它的一些基本操作,希望对大家有所帮助

xlsxwriter是一个用于创建和修改Excel文件(.xlsx)的Python库。它提供了丰富的功能,可以创建复杂的Excel工作簿,包括工作表、图表、图像,以及设置单元格样式和格式等。

创建一个新的Excel文件并添加工作表

import xlsxwriter

# 创建一个新的Excel文件
workbook = xlsxwriter.Workbook('example.xlsx')

# 添加一个名为"Sheet1"的工作表
worksheet = workbook.add_worksheet("Sheet1")

# 在工作表中写入数据
worksheet.write('A1', '姓名')
worksheet.write('B1', '年龄')
worksheet.write('A2', '张三')
worksheet.write('B2', 25)
worksheet.write('A3', '李四')
worksheet.write('B3', 30)

# 保存并关闭Excel文件
workbook.close()

设置单元格样式和格式

import xlsxwriter

workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet()

# 创建一个加粗的格式对象
bold_format = workbook.add_format({'bold': True})

# 在单元格中写入数据,并应用加粗格式
worksheet.write('A1', '标题', bold_format)
worksheet.write('A2', '数据1')
worksheet.write('B2', 100)

# 设置列宽和行高
worksheet.set_column('A:B', 15)
worksheet.set_row(0, 20)

workbook.close()

添加图表

import xlsxwriter

workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet()

# 写入一些数据
data = [10, 20, 30, 40, 50]
worksheet.write_column('A1', data)

# 创建一个柱状图对象
chart = workbook.add_chart({'type': 'column'})

# 添加数据系列到图表中
chart.add_series({
    'values': '=Sheet1!$A$1:$A$5',
    'name': '数据',
})

# 将图表插入工作表中
worksheet.insert_chart('C1', chart)

workbook.close()

写入MySQL数据到Excel

在实际工作中,我们经常需要将数据库中的数据导出到Excel表格中进行进一步的分析和处理。Python中的pymysql和xlsxwriter库提供了很好的解决方案,使得这一过程变得简单而高效。

建立数据库连接

首先,我们需要使用pymysql库来建立与MySQL数据库的连接,并指定要连接的数据库名称、用户名和密码。

import pymysql

connection = pymysql.connect(
    host='localhost',
    user='root',
    password='123456',
    database='caiwu'
)

编写SQL查询语句

接下来,我们可以编写需要执行的SQL查询语句,以获取所需的数据。

query = "SELECT * FROM report_品名"

创建Excel文件对象和工作表对象

使用xlsxwriter库,我们可以创建一个新的Excel文件和工作表对象,准备将数据写入其中。

import xlsxwriter

workbook = xlsxwriter.Workbook('output.xlsx')
worksheet = workbook.add_worksheet()

创建游标对象并执行SQL查询

创建游标对象,执行SQL查询语句,并获取查询结果的列名。

cursor = connection.cursor()
cursor.execute(query)

column_names = [i[0] for i in cursor.description]

将查询结果写入Excel文件

遍历查询结果,并将数据写入到Excel文件中。在此过程中,我们还可以对时间字段进行格式化处理。

import datetime

data = cursor.fetchall()

for col_index, col_name in enumerate(column_names):
    worksheet.write(0, col_index, col_name)

for row_index, row_data in enumerate(data):
    for col_index, col_data in enumerate(row_data):
        if isinstance(col_data, datetime.datetime):
            col_data = col_data.strftime("%Y-%m-%d %H:%M:%S")
        worksheet.write(row_index + 1, col_index, col_data)

关闭游标、数据库连接和Excel文件对象

在数据导出完成后,记得关闭游标、数据库连接和Excel文件对象,释放资源。

cursor.close()
connection.close()
workbook.close()

总结

通过以上步骤,我们使用Python成功地将MySQL查询结果导出到Excel文件中。这种方法不仅简单方便,而且还可以轻松实现定制化的数据处理和格式化操作。

完整代码

import pymysql
import xlsxwriter
import datetime

# 建立数据库连接
connection = pymysql.connect(
    host='localhost',
    user='root',
    password='123456',
    database='caiwu'
)

# 编写SQL查询语句
query = "SELECT * FROM report_品名"

# 创建Excel文件对象
workbook = xlsxwriter.Workbook('output2.xlsx')

# 创建Excel工作表对象
worksheet = workbook.add_worksheet()

# 创建游标对象
cursor = connection.cursor()

# 执行SQL查询
cursor.execute(query)

# 获取查询结果的列名
column_names = [i[0] for i in cursor.description]

# 将列名写入Excel文件的第一行
for col_index, col_name in enumerate(column_names):
    worksheet.write(0, col_index, col_name)

# 获取查询结果中的数据
data = cursor.fetchall()

# 将数据写入Excel文件中
for row_index, row_data in enumerate(data):
    for col_index, col_data in enumerate(row_data):
        # 判断数据类型是否为时间类型
        if isinstance(col_data, datetime.datetime):
            col_data = col_data.strftime("%Y-%m-%d %H:%M:%S")  # 将时间字段转换为字符串
        worksheet.write(row_index + 1, col_index, col_data)

# 关闭游标对象
cursor.close()

# 关闭数据库连接
connection.close()

# 关闭Excel文件对象
workbook.close()

到此这篇关于详解Python中xlsxwriter库的基本操作的文章就介绍到这了,更多相关Python xlsxwriter库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Tensorflow分批量读取数据教程

    Tensorflow分批量读取数据教程

    今天小编就为大家分享一篇Tensorflow分批量读取数据教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • django创建简单的页面响应实例教程

    django创建简单的页面响应实例教程

    这篇文章主要给大家介绍了关于django如何创建简单的页面响应的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用django具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 浅析python打包工具distutils、setuptools

    浅析python打包工具distutils、setuptools

    python包在开发中十分常见,一般的使用套路是所有的功能做一个python模块包,打包模块,然后发布,安装使用。这篇文章给大家介绍了python打包工具distutils、setuptools的相关知识,感兴趣的朋友一起看看吧
    2018-04-04
  • python实现socket客户端和服务端简单示例

    python实现socket客户端和服务端简单示例

    这篇文章主要介绍了python实现socket客户端和服务端简单示例,需要的朋友可以参考下
    2014-02-02
  • 如何升级python包到指定版本

    如何升级python包到指定版本

    这篇文章主要介绍了如何升级python包到指定版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • python爬虫分布式获取数据的实例方法

    python爬虫分布式获取数据的实例方法

    在本篇内容里小编给大家整理的是一篇关于python爬虫分布式获取数据的实例方法,有兴趣的朋友们可以参考下。
    2020-11-11
  • python进阶教程之函数参数的多种传递方法

    python进阶教程之函数参数的多种传递方法

    这篇文章主要介绍了python进阶教程之函数参数的多种传递方法,包括关键字传递、默认值传递、包裹位置传递、包裹关键字混合传递等,需要的朋友可以参考下
    2014-08-08
  • 一文详解凯撒密码的原理及Python实现

    一文详解凯撒密码的原理及Python实现

    凯撒密码是古罗马恺撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符。本文主要为大家讲解了凯撒密码的原理及实现,需要的可以参考一下
    2022-08-08
  • python机器学习基础线性回归与岭回归算法详解

    python机器学习基础线性回归与岭回归算法详解

    这篇文章主要为大家介绍了python机器学习基础线性回归与岭回归算法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • PyQt实现异步数据库请求的实战记录

    PyQt实现异步数据库请求的实战记录

    开发软件的时候不可避免要和数据库发生交互,但是有些 SQL 请求非常耗时,如果在主线程中发送请求,可能会造成界面卡顿,本文将介绍一种让数据库请求变得和前端的 ajax 请求一样简单,希望对大家有所帮助
    2023-12-12

最新评论