Python读取数据库数据写入Excel

本文遵循BY-SA版权协议,转载请附上原文出处链接。


本文作者: 黑伴白

本文链接: http://heibanbai.com.cn/posts/734d1122/

本文示例功能点

  • 读取数据库数据;

  • 创建Excel文件,并创建指定名称的sheet页;

  • 将数据库数据写入创建的sheet页中;

  • 保存文件

示例代码

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
50
51
52
53
54
55
56
57
58
59
60
# -*- coding:utf-8 -*-
import os
import ibm_db
from openpyxl import Workbook

# 数据库连接信息
db_url = "DATABASE=iscfdb;SCHEMA=IOP;HOSTNAME=199.188.166.110;PORT=60006;PROTOCOL=TCPIP;UID=excel;PWD=excel;"

# 查询sql
select_sql = """select
*
from IOP.TSF_INSTANCE
"""
# 命名数据保存的文件名
file_name = "TSF_INSTANCE.xlsx"
# 删除已存在的文件
if os.path.exists(file_name):
os.remove(file_name)
# 创建一个工作簿对象
wb = Workbook()
# 在索引为0的位置创建一个名为mytest的sheet页
ws = wb.create_sheet('IOP.TSF_INSTANCE', 0)

# 连接数据库执行sql获取数据
try:
# 连接数据库
conn = ibm_db.connect(db_url, "", "")
# 关闭自动提交
ibm_db.autocommit(conn, ibm_db.SQL_AUTOCOMMIT_OFF)
# 执行SQL语句
stmt = ibm_db.exec_immediate(conn, select_sql)
# res=ibm_db.fetch_both(stmt)
res = ibm_db.fetch_tuple(stmt)
# 计数器
num = 0
while (res):
num += 1
print("第" + str(num) + "行写入成功")
ws.append(res)
res = ibm_db.fetch_tuple(stmt)
print("文件写入完成,开始保存……")
# 保存工作簿
wb.save(file_name)
# 关闭文件
wb.close()
# 提交事务
ibm_db.commit(conn)
except Exception as e:
# 回滚事务
print(e)
ibm_db.rollback(conn)
finally:
# 关闭数据库连接
ibm_db.close(conn)

# 判断文件是否存在
if not os.path.exists(file_name):
print("生成Excel失败")
else:
print("生成Excel成功")

蚂蚁🐜再小也是肉🥩!


Python读取数据库数据写入Excel
http://heibanbai.com.cn/posts/734d1122/
作者
黑伴白
发布于
2022年6月1日
许可协议

“您的支持,我的动力!觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付