- 读取 Excel 文件。
- 创建一个数据库表,其列名与 Excel 表格的列名相同。
- 插入数据,对于每一行,如果数据为
#N/A
,插入空值。
下面是一个 Python 示例代码,使用 pandas
读取 Excel 文件,创建数据库表(假设使用 MySQL
)并将数据插入数据库。
1. 安装必要的库
pip install pandas mysql-connector-python openpyxl
2. Python 脚本
import pandas as pd
import mysql.connector
from mysql.connector import Error
# 读取 Excel 文件
df = pd.read_excel('path_to_your_excel_file.xlsx', engine='openpyxl')
# 打印数据框架查看数据
print(df.head())
# 创建数据库连接
def create_connection():
try:
connection = mysql.connector.connect(
host='localhost', # 数据库主机地址
database='your_database', # 数据库名称
user='your_user', # 数据库用户名
password='your_password' # 数据库密码
)
return connection
except Error as e:
print(f"Error: {e}")
return None
# 创建表格
def create_table(cursor, table_name, columns):
create_table_query = f"CREATE TABLE IF NOT EXISTS {table_name} ({', '.join(columns)});"
cursor.execute(create_table_query)
# 将 Excel 数据插入数据库
def insert_data(cursor, table_name, data):
# 生成 SQL 插入语句
placeholders = ', '.join(['%s'] * len(data))
insert_query = f"INSERT INTO {table_name} VALUES ({placeholders})"
cursor.execute(insert_query, data)
def main():
# 连接到数据库
connection = create_connection()
if connection is None:
return
cursor = connection.cursor()
# 目标表名(根据 Excel 中的第一列来命名)
table_name = 'steel_scrap_arrival' # 可以根据需求调整
columns = [f"`{col}` VARCHAR(255)" for col in df.columns] # 创建列名并设置为 VARCHAR 类型
create_table(cursor, table_name, columns)
# 插入数据
for row in df.itertuples(index=False, name=None): # 遍历每行
data = [(None if x == '#N/A' else x) for x in row] # 替换 '#N/A' 为 None(空值)
insert_data(cursor, table_name, data)
# 提交事务
connection.commit()
print("Data inserted successfully.")
# 关闭连接
cursor.close()
connection.close()
if __name__ == "__main__":
main()
3. 解释
- 读取 Excel 文件:使用
pandas
读取 Excel 文件,默认使用openpyxl
引擎(适用于.xlsx
格式)。 - 创建数据库连接:使用
mysql.connector
连接到 MySQL 数据库。 - 创建表:从 Excel 文件的列名生成
CREATE TABLE
查询。如果列名包含空格或特殊字符,使用反引号(`)包裹。 - 数据插入:遍历 Excel 表格的每一行,对于每个
#N/A
,替换为None
(数据库中的空值)。然后生成INSERT
查询将数据插入到表中。 - 数据库提交:使用
commit()
提交数据,确保数据被写入数据库。
4. 数据库设置
确保你在数据库中已经创建了一个名为 your_database
的数据库,并且 your_user
和 your_password
是有效的数据库凭据。
5. 更改必要的字段
- 路径:将
'path_to_your_excel_file.xlsx'
替换为你实际 Excel 文件的路径。 - 数据库信息:修改数据库连接参数(
host
,database
,user
,password
)以适应你的环境。
6. 执行脚本
将该 Python 脚本保存并运行,它将自动创建数据库表并插入数据。