详解Python中xlwt库的基本操作

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

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

简单示例

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

1

2

3

4

5

6

7

8

9

10

11

12

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

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

获取查询的所有结果

1

results = cursor.fetchall()

获取所有列名

1

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

写入数据到工作表中

1

2

3

4

5

6

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)

完整代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

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

  • 28
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zxj19880502

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值