使用 IRONXL FOR PYTHON

如何使用Python将Excel文件导入数据库表

查克尼特·宾
查克尼特·宾
2024年六月6日
分享:

在当今数据驱动的世界中,有效地处理和加工数据是任何组织或个人的基本任务。 Python 以其丰富的库生态系统提供了用于数据处理和管理的强大工具,如导入 pandas 库。 一个常见的情况是需要从Excel电子表格中提取或导入数据,并将数据存储或插入到数据库中,以便进行进一步分析或与其他系统集成。 在本教程中,我们将探讨如何创建一个 Python 脚本来自动完成这一过程,让您可以从 Excel 表文件中无缝读取数据并将其插入数据库。 本教程结束后,您就可以高效地处理数据迁移任务了。 让我们开始吧!

如何使用Python将Excel文件导入数据库表

  1. 首先安装 IronXL 库。

  2. 使用 IronXL.Excel 将 Excel 文件加载到内存中。

  3. 加载您希望使用的特定电子表格。

  4. 选择您打算导入的精确数据范围。

  5. 使用 Python 与任何数据库(如 SQLite 或 MySQL 连接数据库)建立连接。

  6. 在 SQLite 数据库中创建一个新表,以容纳导入的数据。

  7. 将 Excel 文件中选定的行插入新创建的 SQLite 表中。

  8. 从创建的 SQLite 表中检索和选择数据,以便进一步分析或处理。

    在本教程中,我们将使用IronXL,这是一个以其处理 Excel 文件的高效性而闻名的 Python 库。 通过将 IronXL 集成到我们的脚本中,我们可以确保从 Excel 电子表格中无缝提取数据,从而能够顺利插入数据库进行进一步分析和处理。

什么是IronXL?

IronXL 是由 Iron Software 开发的一个 Python 库,提供强大的功能,可在 Python 应用程序中直接读取生成和编辑 Excel 文件。 值得注意的是,IronXL.Excel 因其独立于 Microsoft Excel 安装而脱颖而出,简化了在不同环境中的部署。 使用 IronXL,开发人员可以从以下方面获益:

跨平台支持:在 Windows、macOS、Linux、Docker、Azure 和 AWS 平台上享受无缝操作,确保适应多样化的开发环境。

数据导入和导出:轻松处理从XLS、XLSX、CSV和TSV文件的数据导入,灵活导出工作表为这些格式,甚至导出为JSON以增强互操作性。

加密功能:通过利用IronXL的加密功能,确保数据安全,允许使用密码保护XLSX、XLSM和XLTX文件。

公式和重新计算: 轻松使用 Excel 公式,每次编辑工作表时都能自动重新计算,确保数据处理的准确性和可靠性。

单元格样式:通过调整字体样式、大小、背景图案、边框和对齐方式,自定义单元格的外观,提升Excel文档的视觉呈现。

广泛的文档格式支持:通过支持包括XLS、XLSX、XLST、XLSM、CSV和TSV在内的多种格式,IronXL使开发人员能够轻松高效地处理多种场景下的数据。

现在,让我们从安装 IronXL 开始。

第 1 步:安装 IronXL 库

第一步是安装 IronXL 库。 在命令提示符下运行以下命令安装 IronXL。

pip install IronXL
PYTHON

第 2 步:加载 Excel 工作簿

下一步是加载 Excel 文件。本教程将使用以下 Excel 文件。

如何使用Python将Excel文件导入数据库表:图1 - 示例Excel文件输入

以下代码将在内存中加载现有的 Excel 文件。

from ironxl import *     # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024";
workbook = WorkBook.Load("sample_excel.xlsx")
PYTHON

上面的 Python 代码片段演示了使用 IronXL 库加载名为 "sample_excel.xlsx "的 Excel 工作簿。 首先,从 IronXL 导入必要的 Python 模块。 然后,分配一个许可证密钥以验证库的使用。 您可以从IronXL 网站获取您的免费许可证密钥。 最后,使用加载方法将指定的 Excel 工作簿打开并加载到内存中。 例如,您可以在.NET、Java、Python 或 Node.js 中使用".NET "和 "Python",这样就可以对其内容进行后续编程操作,如读取数据、修改单元格值或应用格式化。

步骤 3:选择工作表

要使用 IronXL.Excel 选择 Excel 工作簿中的工作表,可以指定工作表索引或名称。

worksheet = workbook.WorkSheets[0]
PYTHON

该行选择加载的 Excel 工作簿中的第一个工作表,并将其分配给变量 "worksheet",以便在工作簿中的特定工作表上执行后续操作。 这将把 Excel 数据从 Excel 表加载到工作表变量中。

第 4 步:打开数据库连接

在本教程中,我们使用 SQLite 数据库而不是 MySQL 数据库服务器。 要启动数据库操作,我们首先要建立与数据库的连接。

import sqlite3
# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')
PYTHON

上面一行建立了与名为 "data.db "的 SQLite 数据库的连接。 如果指定的数据库不存在,将自动创建。 该连接可实现与 SQLite 数据库的后续交互,如执行查询和数据操作。

步骤 5:创建表格

下一步是在数据库中创建一个数据库表,我们将从 Excel 文件中导入数据。要在 SQLite 数据库中创建表格,可以使用连接对象执行 SQL 语句。

cursor = conn.cursor() // database objects
cursor.execute('''CREATE TABLE IF NOT EXISTS customer ( id Number,
            FirstName TEXT,
                    LastName TEXT,
                    Gender TEXT,
            Country TEXT,
            Age Number
                )''')
PYTHON

上述代码片段初始化了一个游标对象,用于在 SQLite 数据库连接中执行 SQL 命令。 它创建了一个名为 "customer "的表,其中包含 "id"、"FirstName"、"LastName"、"Gender"、"Country "和 "Age "列。 如果表格还不存在,则按照指定的列数据类型创建表格。

步骤 6:使用 Python 将数据导入数据库

现在,我们将向新创建的表中插入数据。 我们将导入 Excel 文件,并将其数据插入 SQLite 数据库。

for i in range(2, 11):
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)
conn.commit()
PYTHON

上述代码遍历 Excel 工作表中的第 2 行至第 10 行,从 A 列至 F 列提取每一行的值。 这些值存储在一个元组中,代表要插入到 "客户 "表中的数据。 然后,游标执行 SQL INSERT 命令,将值元组纳入表中。 每一行都要重复这一过程,从而有效地将 Excel 文件中的数据导入 SQLite 数据库。 最后,conn.commit() 提交事务,确保更改被保存并持久化到数据库中。

步骤 7:从数据库中读取数据

要验证数据是否正确插入,可以使用 SELECT 查询从 SQLite 数据库中的 "客户 "表读取数据。 例如

cursor.execute("SELECT * FROM customer")
# Fetch all rows from the result set
rows = cursor.fetchall()
# Print the rows
for row in rows:
    print(row)
conn.close()
PYTHON

上述代码在 SQLite 数据库中的 "客户 "表上执行 SELECT 查询,检索所有记录。 使用fetchall()方法获取的行存储在'rows'变量中。 然后,反复打印每一行,显示插入到 "客户 "表中的数据。 最后,使用 close() 方法关闭数据库连接以释放资源。

如何使用 Python 将 Excel 文件导入数据库表:图 2 - 从数据库输出读取

完整代码为

import sqlite3
from ironxl import *     # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024";
workbook = WorkBook.Load("sample_excel.xlsx")
# Select worksheet at index 0
worksheet = workbook.WorkSheets[0]
# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS customer ( id Number,
                    FirstName TEXT,
                    LastName TEXT,
                    Gender TEXT,
                    Country TEXT,
                    Age Number
                )''')
cursor.execute("DELETE FROM customer")
for i in range(2, 11):
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)
conn.commit()  
cursor.execute("SELECT * FROM customer")
# Fetch all rows from the result set
rows = cursor.fetchall()
# Print the rows
for row in rows:
    print(row)
conn.close()
PYTHON

结论

总之,本教程展示了一种自动化方法,读取数据释放其在数据管理工作中的全部潜力。 利用 Python 和 IronXL 的强大功能,优化您的数据处理工作流程,满怀信心地推进您的项目。

查克尼特·宾
软件工程师
Chaknith 负责 IronXL 和 IronBarcode 的工作。他在 C# 和 .NET 方面拥有深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的洞察力,有助于提升产品、文档和整体体验。
< 前一页
如何在Excel文件中使用Python插入行
下一步 >
如何在Python中编辑Excel文件

准备开始了吗? 版本: 2025.4 刚刚发布

查看许可证 >