Python读取数据库数据写入Excel

Python读取数据库数据写入Excel

本文示例:

  • 读取数据库数据
  • 创建Excel文件,并创建指定名称的sheet页
  • 将数据库数据写入创建的sheet页中
  • 保存文件

示例代码:

# -*- 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,数据库,python,excel,openpyxl)