mysql 数据库导出全部数据到excel,并保存为不同的sheet

代码思路:

  1. 依次从mysql数据库中导出数据表,保存在本地
  2. 将本地的数据表合并在一个excel中,使用sheet区分不同表

首先运行这份代码,得到导出数据表的代码对应的字符串

ip = "127.0.0.1" # 数据库地址
username = "用户名"
password = "密码"
database = '数据库名'
tabels = ['数据表 1',
          '数据表 2',] # 在mysqlworkbench中使用 show tables; 直接导出数据库的全部表

if __name__ == '__main__':
    for tabel_name in tabels:
        string = 'mysql -h' + ip + ' -u' + username + ' -p' + password + ' -e "select * from ' + tabel_name + '" ' + database + ' > db_data/' + tabel_name + '.csv'
        # exce 会报错
        print(string)

将得到的字符串直接复制在命令行中,运行即可,运行完成后执行下面的代码:

import os
import pandas as pd

# 读取path目录下的全部文件
def readfile(path):
    files = os.listdir(path)
    file_list = []
    for file in files:  # 遍历文件夹
        if not os.path.isdir(file):
            file_list.append(path + '/' + file)
    return file_list


if __name__ == '__main__':
    writer = pd.ExcelWriter(r'db_data.xlsx')
    for csv_file in readfile('db_data'):
        try:
            file_name = csv_file.split('/')[-1].split('.')[0]
            csv_pd = pd.read_csv(csv_file, sep='\t', lineterminator='\n')
            csv_pd.to_excel(writer, sheet_name=file_name)
        except Exception as e:
            print("ERROR : " + csv_file)
    writer.save()
    writer.close()

猜你喜欢

转载自blog.csdn.net/weixin_35757704/article/details/107943014