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()
相关推荐
打工仔折腾 AI8 分钟前
FaceFusion本地换脸实战:Windows整合包、模型选择与遮罩调参记录
人工智能·windows·后端·python·深度学习·性能优化·ai agent 实战
yi0119 分钟前
DAY24: LeetCode 167:两数之和 II|从暴力枚举到左右双指针
笔记·python·算法·leetcode·二分查找·双指针
kimnoic20 分钟前
Python常用命令提示符使用方法详解
开发语言·python
Είναι η κοπέλα34 分钟前
模型量化完全指南:GGUF、GPTQ、AWQ 怎么选
人工智能·pytorch·python
yi01137 分钟前
LeetCode 15:三数之和|排序 + 双指针,如何避免重复答案?
笔记·python·算法·leetcode·双指针
weixin199701080161 小时前
《1688消息服务落地方案:alibaba.message.* 与 Webhook 回调的可靠性与重试策略》(附Python源码)
开发语言·python
一只专注api接口开发的技术猿1 小时前
Open‑Claw 实战|告别页面逆向,快速搭建电商商品监控与数据分析完整方案
大数据·数据库·python·数据挖掘·数据分析
忆~遂愿1 小时前
免密连接+快捷键+虚拟鼠标:ToDesk远程操作AI效率拉满
人工智能·python·深度学习·神经网络·自然语言处理·计算机外设·安全架构
ComPDFKit1 小时前
用 ComPDF DocSlight 提取 PDF 表格:三种样本实测与 Python 接入
开发语言·python·pdf·pdf表格提取
92year2 小时前
我用运筹学穷举了麦当劳全菜单:30 块预算,怎么吃到全局最优?
python·agent·mcp