详解Python中xlwt库的基本操作

 更新时间:2023年11月18日 10:27:22   作者:悬崖上的金鱼  
xlwt 是一个用于在Python中操作Excel文件的库,它允许用户创建、修改和写入Excel文件,本文主要为大家介绍了xlwt库的一些基本操作,需要的可以参考一下

xlwt 简介

xlwt 是一个用于在Python中操作Excel文件的库。它允许用户创建、修改和写入Excel文件,支持设置单元格的格式、样式等。以下是一些关键的特性和信息:

  • 创建和写入Excel文件: xlwt 允许用户创建新的Excel文件并在其中写入数据。这对于生成报表、导出数据等任务非常有用。
  • 支持设置单元格样式: 通过 xlwt,用户可以设置单元格的字体、对齐方式、背景色等样式,以使生成的Excel文件更具可读性和美观性。
  • 支持多种数据类型: xlwt 支持多种数据类型,包括文本、数字、日期等,使用户能够以各种格式将数据写入Excel文件。
  • 兼容性: 该库兼容 Excel 97-2003 文件格式(.xls),因此可以在较旧版本的Excel中使用。
  • 使用简便: xlwt 提供了简单而直观的接口,使得即使对于没有丰富编程经验的用户也能轻松上手。

简单示例

以下是一个简单的示例,演示如何使用 xlwt 创建一个Excel文件并写入数据:

import xlwt

# 创建一个新的Excel文件和工作表
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('Sheet1')

# 写入数据到单元格
sheet.write(0, 0, 'Hello')
sheet.write(0, 1, 'World!')

# 保存文件
workbook.save('example.xls')

二维列表数据写入Excel(一)

按行存储在list的数据写入Excel

import xlwt

# 创建一个Workbook对象
workbook = xlwt.Workbook()
# 添加一个Sheet并设置其名称
sheet = workbook.add_sheet('我的数据')
# 定义列表数据
data = [
    ['id', '姓名', '国家'],
    [1.0, '曹操', '魏国'],
    [2.0, '刘备', '蜀国'],
    [3.0, '孙权', '吴国'],
    [4.0, '荀彧', '魏国'],
    [5.0, '诸葛亮', '蜀国'],
    [6.0, '周瑜', '吴国'],
    [7.0, '曹仁', '魏国'],
    [8.0, '关羽', '蜀国'],
    [9.0, '吕蒙', '吴国']
]
# 写入数据到单元格
for i, row in enumerate(data):
    for j, value in enumerate(row):
        sheet.write(i, j, value,style)
# 保存Workbook到文件
workbook.save('output.xlsx')

二维列表数据写入Excel(二)

按列存储在list的数据写入Excel

import xlwt
# 创建一个Workbook对象
workbook = xlwt.Workbook()

sheet2 = workbook.add_sheet('我的数据2')

data=[
    ['id', 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0],
    ['姓名', '曹操', '刘备', '孙权', '荀彧', '诸葛亮', '周瑜', '曹仁', '关羽', '吕蒙'],
    ['国家', '魏国', '蜀国', '吴国', '魏国', '蜀国', '吴国', '魏国', '蜀国', '吴国']]

# 写入数据到单元格
for i, row in enumerate(data):
    for j, value in enumerate(row):
        sheet2.write(j, i, value)

# 保存Workbook到文件
workbook.save('output2.xlsx')

把pymysql获取的结果集写入Excel

获取查询的所有结果

results = cursor.fetchall()

获取所有列名

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

写入数据到工作表中

for row_index, row in enumerate(results):
    for col_index, value in enumerate(row):
        # 判断数据类型是否为时间类型
        if isinstance(value, datetime.datetime):
            value = value.strftime("%Y-%m-%d %H:%M:%S")
        sheet.write(row_index + 1, col_index, value)

完整代码

import pymysql    # 导入pymysql库,用于连接MySQL数据库
import xlwt       # 导入xlwt库,用于生成Excel文件
import datetime

# 建立数据库连接
connection = pymysql.connect(
    host='localhost',      # 数据库主机地址
    user='root',           # 数据库用户名
    password='123456',     # 数据库密码
    database='caiwu'       # 数据库名称
)

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

# 执行SQL查询
cursor.execute("SELECT * FROM report_品名 limit 10")

# 获取所有结果
results = cursor.fetchall()
print(results)

# 获取列名(即各个字段名)
column_names = [i[0] for i in cursor.description]

# 创建Excel工作簿
workbook = xlwt.Workbook()

# 创建工作表(即Excel中的sheet)
sheet = workbook.add_sheet('Sheet1')

# 写入列名到工作表中
for col_index, column_name in enumerate(column_names):
    sheet.write(0, col_index, column_name)

# 写入数据到工作表中
for row_index, row in enumerate(results):
    for col_index, value in enumerate(row):
        # 判断数据类型是否为时间类型
        if isinstance(value, datetime.datetime):
            value = value.strftime("%Y-%m-%d %H:%M:%S")
        sheet.write(row_index + 1, col_index, value)

# 保存Excel文件
workbook.save('output.xls')

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

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

相关文章

  • Python爬虫自动化获取华图和粉笔网站的错题(推荐)

    Python爬虫自动化获取华图和粉笔网站的错题(推荐)

    这篇文章主要介绍了Python爬虫自动化获取华图和粉笔网站的错题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • TensorBoard 计算图的可视化实现

    TensorBoard 计算图的可视化实现

    今天小编就为大家分享一篇TensorBoard 计算图的可视化实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • PyCharm使用技巧之设置背景图片方式

    PyCharm使用技巧之设置背景图片方式

    这篇文章主要介绍了PyCharm使用技巧之设置背景图片方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Python多线程多进程实例对比解析

    Python多线程多进程实例对比解析

    这篇文章主要介绍了Python多线程多进程实例对比解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Python flask返回中文乱码的解决方法分享

    Python flask返回中文乱码的解决方法分享

    有时使用flask返回数据会出现带有中文的时候会显示成乱码(ascii)的情况出现,所以本文为大家整理了一下解决的方法,需要的小伙伴可以参考一下
    2023-07-07
  • numpy.concatenate函数用法详解

    numpy.concatenate函数用法详解

    本文主要介绍了numpy.concatenate函数用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • django 自定义过滤器(filter)处理较为复杂的变量方法

    django 自定义过滤器(filter)处理较为复杂的变量方法

    今天小编就为大家分享一篇django 自定义过滤器(filter)处理较为复杂的变量方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python中base64与xml取值结合问题

    Python中base64与xml取值结合问题

    这篇文章主要介绍了Python中base64与xml取值结合问题,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • 浅析Python如何实现Celery任务队列系统

    浅析Python如何实现Celery任务队列系统

    这篇文章主要为大家详细介绍了一个基于 Celery 和 Redis 的分布式任务队列系统,用于处理异步任务和定时任务,希望对大家有一定的帮助
    2025-04-04
  • Python简单生成随机数的方法示例

    Python简单生成随机数的方法示例

    这篇文章主要介绍了Python简单生成随机数的方法,结合实例形式分析了Python基于random模块生成随机数的相关操作技巧,需要的朋友可以参考下
    2018-03-03

最新评论