python读取excel,根据excel的列名自动生成mysql表并写入
时间: 2023-07-07 09:34:48 浏览: 219
您可以使用 pandas 库读取 Excel 文件,并根据 Excel 文件中的列名自动生成 MySQL 表。接下来,您可以将 DataFrame 数据写入该表中。首先,您需要安装 pymysql 和 xlrd 库,它们分别是 Python 连接 MySQL 数据库和读取 Excel 文件的库。您可以使用以下命令安装它们:
```
pip install pymysql xlrd
```
接下来,您可以使用以下代码从 Excel 文件中读取数据,并根据 Excel 文件中的列名自动生成 MySQL 表:
```python
import pandas as pd
import pymysql
# 读取 Excel 文件
df = pd.read_excel('data.xlsx')
# 数据库连接信息
host = 'localhost'
port = 3306
user = 'root'
password = 'password'
database = 'test'
# 连接数据库并创建表
conn = pymysql.connect(host=host, port=port, user=user, password=password, database=database)
cursor = conn.cursor()
# 获取 Excel 文件中的列名,并生成对应的 MySQL 表
columns = df.columns.tolist()
table_name = 'my_table'
sql = f"CREATE TABLE IF NOT EXISTS {table_name} ({','.join([f'{col} VARCHAR(255)' for col in columns])})"
cursor.execute(sql)
# 将数据写入 MySQL 数据库中
for i, row in df.iterrows():
sql = f"INSERT INTO {table_name} ({','.join(columns)}) VALUES ({','.join([f'"{row[col]}"' for col in columns])})"
cursor.execute(sql)
# 关闭数据库连接
conn.commit()
cursor.close()
conn.close()
```
这段代码会将 Excel 文件中的数据写入名为 my_table 的表中。如果表不存在,则会自动创建。请注意,此代码只是示例代码,实际使用中应该使用参数化查询以避免 SQL 注入攻击。
阅读全文