将本地.xlsx文件上传到服务器数据库

接到一个任务,将本地的表格文件上传到服务器的MySQL数据库中。

我查了网上的一些资料,基本上都是先将文件转为.csv文件,然后利用scp读入到服务器,最后在数据库中建表,和运行脚本读入。所以我采用了如下做法:

一、先利用python脚本将本地的表格文件转为.csv文件。

        这个代码其实蛮简单的,就是调用了一个pandas数据处理库。

import pandas as pd

# 读取Excel文件,将路径修改为你自己要转换的那个文件路径就好。
df = pd.read_excel("C:\\xxx\\xxxx\\工作簿1.xlsx")

# 保存为CSV文件,选择一个保存路径。
df.to_csv('C:\\xxx\\xxxx\\工作簿1.csv', index=False)

如果你有一整个要读取的文件夹。或者是xlsx里面有好多要读取的小表格,你可以在里面加一个循环,就省得每次都要修改路径。

import pandas as pd

# 读取 Excel 文件,我这个是一个表格里面有多个表格的情况。
file_path = "C:\\xxx\\xxxx\\工作目录一.xlsx"  # 替换为你的 Excel 文件路径
xls = pd.ExcelFile(file_path)
#保存的文件夹路径
output_directory = 'C:\\xxx\\xxxx\\工作目录一.csv'
os.makedirs(output_directory, exist_ok=True)
# 遍历每个工作表,并保存为 CSV 文件
for sheet_name in xls.sheet_names:
    df = pd.read_excel(xls, sheet_name)
    # 构建 CSV 文件的完整路径
    csv_file_path = os.path.join(output_directory, f'{sheet_name}.csv')  
    df.to_csv(csv_file_path, index=False)  # 保存为 CSV 文件

 这样就把xlsx文件转换为了csv文件。

二、然后利用本地的scp工具将转换好的文件传输到服务器上。

传输过来以后一定要记得你保存的路径!!!同时你可以将你自己本地写好的要读入数据库的脚本也传输过来。

这个是读取服务器中刚刚存入的csv,存入数据库的代码。

import pandas as pd
from sqlalchemy import create_engine

# 读取CSV的文件路径
df = pd.read_csv("C:\\xxxx\\table1.csv")  # 替换为你的 CSV 文件路径

# 创建数据库连接
engine = create_engine('mysql+mysqlconnector://数据库名:数据库密码@服务器IP:3306/要存入的数据库名')

# 将数据写入已存在的 MySQL 数据库表
df.to_sql('表名', con=engine, index=False, if_exists='append')  # 使用 'append' 追加数据

代码中append是因为我之前现在数据库中写了建表语句,所以append只是将表中追加数据;你也可以将appen用replace替换直接生成表并且导入数据库,不过这样写的话表中的数据都是text类型,会大大占用你的数据库内存。

备注:脚本代码可以根据你的需求自行修改,我这代码就是最基本的代码,转出来的csv文件可以自己先修改一下,比如一些有空格这类的在读入数据库时很容易引起报错,然后还有一些小错误,自己可以修改自己的脚本代码,省的去一个个修改数据库表结构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值