将sqlite3的表转成excel表

打开sqlite3的mdb, 使用.schema找所有表和表结构,然后每一张表都创建一个excel文件,以表名命名文件。

python 复制代码
import sys
import json
import csv
import io
import sqlite3
import os
from xlsxwriter.workbook import Workbook

# 打开sqlite3的mdb, 使用.schema找所有表和表结构,然后每一张表都创建一个excel文件,以表名命名文件,
#  query所有数据,写入excel,统一输出xlsx_out文件

conn=sqlite3.connect('sqlite.mdb')
c=conn.cursor()
os.makedirs('xlsx_out', exist_ok=True)
tables = [row[0] for row in c.execute("select name from sqlite_master where type='table'").fetchall()]
for table_name in tables:
    print(f"proccessing table_name: {table_name}")
    # 创建工作簿、工作表
    workbook = Workbook(f'xlsx_out/{table_name}.xlsx')
    worksheet = workbook.add_worksheet()
    # query所有数据
    cur=conn.execute(f"select * from {table_name}")
    # 第一行为字段名
    headers = [desc[0] for desc in cur.description]
    for j, h in enumerate(headers):
        worksheet.write(0, j, h)
    print(f"write data: {table_name}")
    # 数据从第二行开始写
    for i, rowx in enumerate(cur, start=1):
        for j, value in enumerate(rowx):
            worksheet.write(i, j, value)
    print(f"finished data: {table_name}")

    workbook.close()
    print(f"workbook closed: {table_name}")
conn.close()
相关推荐
鬼手点金44 分钟前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
paopaokaka_luck2 小时前
滑雪场管理系统(AI智能助手流式对话,ECharts 运营数据分析、教练、雪具与场地一体化预约,钱包支付退款、订单核销与服务评价)
java·人工智能·spring boot·网络协议·数据分析·echarts
Wang's Blog2 小时前
Java 项目实战: 交友项目 - Dubbo 的内部结构与一次调用的完整链路
java·dubbo
Wang's Blog2 小时前
Java 项目实战: 交友项目 - Dubbo 入门引导
java·dubbo·交友
蜗牛互联网3 小时前
Python Agent工具调用的白名单、参数校验与审批门禁
java·服务器·前端·人工智能·后端·python
SL_staff3 小时前
当规则引擎开始‘懂业务’:JVS-Rules金融风控四大原生能力拆解
java·python·全栈
Shaoshing3 小时前
前缀和与差分
java·数据结构·算法·前缀和·差分
dd聊技术3 小时前
Prompt 从代码常量搬进数据库:改一句话,不用再发一次版
java·后端
ly76894 小时前
Spring Data MongoDB 批量写入实践:BulkOperations 批大小与写关注权衡
java·mongodb·spring·批量写入·bulkoperations·写关注·mongotemplate
TAKETODAY4 小时前
Netty 是怎么把 HTTP 请求交给 MVC 的?一个请求的完整链路
java·netty