将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()
相关推荐
rannn_1111 天前
【力扣hot100】链表专题|160、206、234、141、142
java·算法·leetcode·链表·面试·开发
IKUN家族1 天前
Spring IoC&DI
java·spring·rpc
山荷枝1 天前
03-框架--Spring
java·后端·spring
ChaHae-In1 天前
SpringBoot统一功能处理
java·spring boot·后端
coder!mq1 天前
说几个常见的语法糖?
java·开发语言·算法
gugucoding1 天前
38. 【Java】Stream API(下):高级操作与性能
java·开发语言
心平气和量大福大1 天前
android-实例-蒲公英-更新与安装-5-签名与生成APK
android·java·开发语言
952361 天前
Spring-cloud配置中心
java·spring·spring cloud·微服务
ydd1001001 天前
寻找两个正序数组的中位数 Java 题解,二分分割详解
java·开发语言
真上帝的左手1 天前
10. 软件设计&架构-Spring Security 7 整合CAS SSO 单点登录
java·spring·架构·sso