python_从sqlite导出数据至Excel

cursor.fetchall()的方式

import sqlite3
from openpyxl import Workbook

# 数据库文件名
db_file = 'D:\\desktop\\ni.db'

# XLSX 文件名
xlsx_file = 'D:\\desktop\\output2.xlsx'

# 连接到数据库
conn = sqlite3.connect(db_file)
cursor = conn.cursor()

# 执行查询
cursor.execute("SELECT * FROM 日常测试2")

# 获取所有行
rows = cursor.fetchall()

# 获取列名
column_names = [description[0] for description in cursor.description]

# 创建一个新的工作簿
workbook = Workbook()
worksheet = workbook.active

# 写入列名
worksheet.append(column_names)

# 写入数据行
for row in rows:
    worksheet.append(row)

# 保存工作簿
workbook.save(xlsx_file)

# 关闭游标和连接
cursor.close()
conn.close()

print(f"Data has been exported to {xlsx_file}")

pd.read_sql()的方式

import pandas as pd
import sqlite3

output_file_path='D:\\desktop\\test.xlsx'

# 连接到 SQLite 数据库
conn = sqlite3.connect('D:\\desktop\\ni.db')

# 查询所有订单
query = "SELECT * FROM 日常测试2"
df = pd.read_sql(query, conn)

# 关闭连接
conn.close()

# 将 DataFrame 写入 Excel 文件
df.to_excel(output_file_path, index=False)

# 输出确认信息
print(f"DataFrame has been written to {output_file_path}")
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您的问题是如何将50个Excel文件数据导入到SQLite数据,对吗?以下是一个可能的解决方案: 首先,需要导入必要的Python库:pandas、sqlite3、random和string。可以像下面这样导入: ``` import pandas as pd import sqlite3 import random import string ``` 接下来,需要定义生成随机字符串和随机整数的函数。可以使用Python的random和string库来实现: ``` def generate_random_string(length): """生成指定长度的随机字符串""" return ''.join(random.choice(string.ascii_letters) for _ in range(length)) def generate_random_int(start, end): """生成指定范围内的随机整数""" return random.randint(start, end) ``` 然后,可以定义一个函数来生成每个Excel文件数据。可以使用pandas库来创建DataFrame对象,并使用apply函数来应用generate_random_string和generate_random_int函数来生成随机数据。以下是一个例子: ``` def each_xlsx_is_x(df): """生成一个Excel文件数据""" df['A'] = df.apply(lambda _: generate_random_string(10), axis=1) df['B'] = df.apply(lambda _: generate_random_int(1, 100), axis=1) df['C'] = df.apply(lambda _: generate_random_string(5), axis=1) df['D'] = df.apply(lambda _: generate_random_int(100, 1000), axis=1) df['E'] = df.apply(lambda _: generate_random_string(8), axis=1) return df ``` 接下来,可以使用pandas库来生成50个Excel文件,并将每个文件数据随机生成。可以使用to_excel函数将DataFrame对象写入到Excel文件。以下是一个例子: ``` for i in range(50): df = pd.DataFrame(columns=['A', 'B', 'C', 'D', 'E']) df = each_xlsx_is_x(df) df.to_excel(f'file_{i}.xlsx', index=False) ``` 然后,需要连接SQLite数据库,并创建与Excel文件相匹配的数据表。可以使用sqlite3库来连接数据库,并使用execute函数来执行SQL语句。以下是一个例子: ``` conn = sqlite3.connect('example.db') c = conn.cursor() c.execute('''CREATE TABLE IF NOT EXISTS data (A TEXT, B INTEGER, C TEXT, D INTEGER, E TEXT)''') conn.commit() ``` 接下来,可以定义一个函数来将Excel文件数据导入到SQLite数据。可以使用pandas库的read_excel函数来读取Excel文件,并使用to_sql函数将数据写入到SQLite数据。以下是一个例子: ``` def xlsx2sqlite(filename, table_name): """将一个Excel文件数据导入到SQLite数据""" df = pd.read_excel(filename) df.to_sql(table_name, conn, if_exists='append', index=False) ``` 最后,可以遍历50个Excel文件,将每个文件数据导入到SQLite数据。可以使用glob库来获取所有的Excel文件名,并使用os库来获取文件名和扩展名。以下是一个例子: ``` import glob import os for filename in glob.glob('*.xlsx'): name, ext = os.path.splitext(filename) xlsx2sqlite(filename, name) ``` 最后,别忘了关闭数据库连接: ``` conn.close() ``` 希望这个解决方案能够帮到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值