打开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()