如何将数据从xlsm文件插入和推入sql?

时间:2019-05-20 06:30:34

标签: python sql excel pandas

我有一个xlsm工作簿,其中包含我现在要导入的每张工作表中的表格和图表,并将我的xlsm数据推送到任何sql 我搜索了如何执行此操作,发现通过python和pandas来推送数据是最好的方法,但直到现在我才发现 因此,有什么方法可以将我的所有数据插入到sql中,以便轻松使用和自动化我的数据 如果有一些教程,请告诉我或我该怎么做

1 个答案:

答案 0 :(得分:1)

为此,您需要安装要求:

  1. pip安装mysqlclient
  2. pip安装熊猫
  3. 使用MySQL数据库为Web服务器安装xampp
  4. 安装MS Excel以使要插入到MySQL DB的表

这是我的PHPMyAdmin数据库和表名:

我的Excel xlsm工作簿:

满足要求后,您可以尝试以下代码(不要忘记将python脚本和xlsm文件放在同一目录中):

import pandas as pd, os, MySQLdb

# Your directory
mydir = (os.getcwd()).replace('\\','/') + '/'

df=pd.read_excel(r''+ mydir +'Book1.xlsm')
print(df)

# Establish a MySQL connection
database = MySQLdb.connect (host="127.0.0.1", user = "root", passwd = "", db = "myDB")
print(database)
# Get the cursor, which is used to traverse the database, line by line
cursor = database.cursor()

# Create the INSERT INTO sql query
query = """INSERT INTO myTable (name, email) VALUES ( %s, %s)"""

for i in range(len(df)):
    name=df['name'][i]
    email=df['email'][i]

    # Assign values from each row
    values=(name, email)
    # Execute sql Query
    cursor.execute(query, values)

# Close the cursor
cursor.close()

# Commit the transaction
database.commit()

# Close the database connection
database.close()
print('Insert success!')

输出:

     name                email
0  alfafa  miftahf77@gmail.com
<_mysql.connection open to '127.0.0.1' at 000002A5CB0BCEA8>
Insert success!
>>> 

执行python脚本后,将myTable更改为:

希望这可以为您提供帮助。