当前位置:实例文章 » 其他实例» [文章]python 写个excle表格数据导入mysql数据的服务

python 写个excle表格数据导入mysql数据的服务

发布人:shili8 发布时间:2024-12-30 02:17 阅读次数:0

**Python服务:Excel 表格数据导入 MySQL 数据**

###服务概述本服务用于将 Excel 表格中的数据导入到 MySQL 数据库中。该服务使用 Python 的 `pandas` 库来读取 Excel 文件,并使用 `mysql-connector-python` 库连接到 MySQL 数据库。

###依赖库* `pandas`:用于读取和操作 Excel 文件* `mysql-connector-python`:用于连接到 MySQL 数据库###服务代码

import pandas as pdimport mysql.connectorfrom mysql.connector import Errorclass ExcelToMySQL:
 def __init__(self, excel_file_path, mysql_host, mysql_user, mysql_password, mysql_database):
 self.excel_file_path = excel_file_path self.mysql_host = mysql_host self.mysql_user = mysql_user self.mysql_password = mysql_password self.mysql_database = mysql_database def read_excel(self):
 try:
 #读取 Excel 文件 df = pd.read_excel(self.excel_file_path)
 return df except Exception as e:
 print(f"Error reading Excel file: {e}")
 return None def connect_to_mysql(self):
 try:
 # 连接到 MySQL 数据库 cnx = mysql.connector.connect(
 host=self.mysql_host,
 user=self.mysql_user,
 password=self.mysql_password,
 database=self.mysql_database )
 return cnx except Error as e:
 print(f"Error connecting to MySQL: {e}")
 return None def import_data_to_mysql(self, df):
 try:
 # 连接到 MySQL 数据库 cnx = self.connect_to_mysql()
 if cnx is not None:
 cursor = cnx.cursor()

 # 获取表名 table_name = "excel_import"

 # 创建表格(如果不存在)
 query = f"CREATE TABLE IF NOT EXISTS {table_name} ("
 for col in df.columns:
 query += f"{col} VARCHAR(255), "
 query = query[:-2] + ")"
 cursor.execute(query)

 # 插入数据 for index, row in df.iterrows():
 query = f"INSERT INTO {table_name} VALUES ("
 for col in df.columns:
 query += f"'{row[col]}', "
 query = query[:-2] + ")"
 cursor.execute(query)

 # 提交更改并关闭连接 cnx.commit()
 cursor.close()
 cnx.close()

 except Exception as e:
 print(f"Error importing data to MySQL: {e}")

if __name__ == "__main__":
 excel_file_path = "example.xlsx"
 mysql_host = "localhost"
 mysql_user = "root"
 mysql_password = "password"
 mysql_database = "test"

 excel_to_mysql = ExcelToMySQL(
 excel_file_path=excel_file_path,
 mysql_host=mysql_host,
 mysql_user=mysql_user,
 mysql_password=mysql_password,
 mysql_database=mysql_database )

 df = excel_to_mysql.read_excel()
 if df is not None:
 excel_to_mysql.import_data_to_mysql(df)


###服务使用说明1. 将 `example.xlsx` 替换为您要导入的 Excel 文件路径。
2. 修改 MySQL 连接参数(host、user、password 和 database)以匹配您的 MySQL 实例。
3. 运行该脚本,Excel 表格中的数据将被导入到 MySQL 数据库中。

### 注意事项* 确保您有正确的 MySQL 连接权限和 Excel 文件路径。
* 如果表名或列名与现有的 MySQL 表或列冲突,则可能会导致错误。
*该脚本仅适用于简单的导入操作。如果您的 Excel 表格包含复杂的数据类型(如日期、时间戳等),则需要进行额外的处理。

### 后续改进* 添加错误处理和日志记录功能以提高服务稳定性。
* 支持导入多个 Excel 文件或分批导入大型文件。
* 实现数据验证和清理功能,以确保导入的数据准确且一致。

其他信息

其他资源

Top