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()
相关推荐
2601_9622932412 分钟前
Python自动化统计团队工作量并生成可视化仪表盘的脚本方案【指导】
python·数据分析·自动化·可视化·仪表盘
2601_962293791 小时前
OCRmyPDF批处理脚本:使用Python自动化复杂OCR任务
python·自动化·批处理脚本·ocrmypdf·ocr任务
Java后端的Ai之路3 小时前
20、Python - 备忘录模式
开发语言·人工智能·python·外观模式·备忘录模式
2601_962077713 小时前
基于Python与NLP的新闻事件信息抽取实战:从NER到时空标准化
python·nlp·transformers·spacy·新闻事件抽取
JavaPub-rodert4 小时前
LangChain 从入门到 Agent 实战:用 Python 搭建一个真正能调用工具和知识库的 AI 助手
人工智能·python·langchain
郝学胜-神的一滴4 小时前
Qt 高级编程 045:坐标体系深度实战
开发语言·c++·windows·python·qt·程序人生
m0_380743875 小时前
给 OpenAI API 调用加上模型切换:GPT-5.1 和 Codex 的配置实践
人工智能·python·gpt
2601_962297485 小时前
在python3中、下列输出变量a的正确写法是_2020超星大数据Python免费答案
数据结构·python·算法·编程·字符串操作
“AI国潮设计-小江”5 小时前
Python实战 | SDXL精准控制“普宁英歌舞×星空蛋糕”IP落地,附核心Prompt与商用授权思路
开发语言·人工智能·python·prompt·aigc
公爵爱学习5 小时前
无人机视觉识别前序-Linux-YOLO安装
python·yolo·计算机视觉·conda·无人机