MySQL数据库里有个银行明细表,数据有几千万,包含几万张卡号的明细,卡号再表内的表头为交易卡号字段,怎么按照交易卡号批量导出数据为Excel文件,并且导出的文件以对应的卡号命名
时间: 2024-03-20 15:38:44 浏览: 127
阿里的EasyExcel+Mysql方式实现数据库数据导出生成excel,将excle表里面的数据保存到数据库.zip
你可以使用 MySQL 的 SELECT INTO OUTFILE 语句将指定表中的数据导出为 CSV 文件,然后使用 Python 的 Pandas 库将 CSV 文件读入为 DataFrame,再使用 DataFrame 的 to_excel() 方法将数据导出为 Excel 文件,并以对应的卡号命名。
下面是一个简单的 Python 代码示例:
```python
import pandas as pd
import os
# MySQL 连接配置
mysql_config = {
'host': 'localhost',
'port': 3306,
'user': 'username',
'password': 'password',
'database': 'db_name'
}
# 导出数据为 CSV 文件
query = "SELECT * FROM bank_detail_table ORDER BY 交易卡号"
file_path = '/path/to/csv/file.csv'
with open(file_path, 'w', encoding='utf-8') as f:
df = pd.read_sql(query, con=mysql_config)
df.to_csv(f, index=False)
# 读入 CSV 文件并导出为 Excel 文件
df = pd.read_csv(file_path)
grouped = df.groupby('交易卡号')
for card_no, group in grouped:
file_name = '{}.xlsx'.format(card_no)
file_path = os.path.join('/path/to/excel/files', file_name)
with pd.ExcelWriter(file_path) as writer:
group.to_excel(writer, index=False)
```
这个示例中,你需要将 `username` 和 `password` 替换为你 MySQL 数据库的用户名和密码,将 `db_name` 替换为你要导出数据的数据库名。并将 `/path/to/csv/file.csv` 和 `/path/to/excel/files` 替换为你要导出 CSV 文件和 Excel 文件的路径。
阅读全文