将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()
相关推荐
plainGeekDev3 小时前
Gson → kotlinx.serialization
android·java·kotlin
小bo波11 小时前
Java Swing 图形用户界面实验 —— 从算术练习到游戏开发的完整实践
java·课程设计·gui·游戏开发·扫雷·swing
咖啡八杯13 小时前
GoF设计模式——备忘录模式
java·后端·spring·设计模式
SamDeepThinking1 天前
裁掉那个差程序员后,给你看团队里高手的代码:这个习惯,希望你有
java·后端·程序员
朕瞧着你甚好1 天前
技术雷达 & Java 集成评估报告 — Apache Tika 3.3.1
java·ai编程
MacroZheng1 天前
短短几天,暴涨2.8万Star!又一款编程神器开源!
java·人工智能·后端
SamDeepThinking1 天前
函数式编程:用BiFunction消除多类型分支的代码重复
java·后端·面试
Flittly2 天前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
小兔崽子去哪了2 天前
Java 生成二维码解决方案
java·后端