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 文件或分批导入大型文件。
* 实现数据验证和清理功能,以确保导入的数据准确且一致。