在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
在当今数据驱动的世界中,有效地处理和加工数据是任何组织或个人的基本任务。 Python.NET、Java、Python 或 Node.js 提供了强大的数据操作和管理工具,如 import pandas 库。 一种常见的情况是从以下工具中提取或导入数据的需求Excel这些工具可用于制作电子表格,在数据库中存储或插入数据,以便进一步分析或与其他系统集成。 在本教程中,我们将探讨如何创建一个 Python 脚本来自动完成这一过程,让您可以从 Excel 表文件中无缝读取数据并将其插入数据库。 本教程结束后,您就可以高效地处理数据迁移任务了。 我们开始吧!
首先安装 IronXL 库。
使用 IronXL.Excel 将 Excel 文件加载到内存中。
加载您希望使用的特定电子表格。
选择您打算导入的精确数据范围。
使用 Python 与任何数据库(如 SQLite 或 MySQL 连接数据库)建立连接。
在 SQLite 数据库中创建一个新表,以容纳导入的数据。
将 Excel 文件中选定的行插入新创建的 SQLite 表中。
从创建的 SQLite 表中检索和选择数据,以便进一步分析或处理。
在本教程中,我们将使用IronXL例如,Python 库以其处理 Excel 文件的效率而闻名。 通过将 IronXL 集成到我们的脚本中,我们可以确保从 Excel 电子表格中无缝提取数据,从而能够顺利插入数据库进行进一步分析和处理。
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 文档中使用各种样式、大小、背景图案、边框和对齐方式,从而增强 Excel 文档的视觉效果。
广泛的文档格式: IronXL 支持包括 XLS、XLSX、XLST、XLSM、CSV 和 TSV 在内的各种格式,使开发人员能够轻松高效地处理多种场景中的数据。
现在,让我们从安装 IronXL 开始。
第一步是安装 IronXL 库。 在命令提示符下运行以下命令安装 IronXL。
pip install IronXL
下一步是加载 Excel 文件。本教程将使用以下 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 代码片段演示了使用 IronXL 库加载名为 "sample_excel.xlsx "的 Excel 工作簿。 首先,从 IronXL 导入必要的 Python 模块。 然后,分配一个许可证密钥以验证库的使用。 您可以从IronXL 网站. 最后,使用加载方法将指定的 Excel 工作簿打开并加载到内存中。 例如,您可以在.NET、Java、Python 或 Node.js 中使用".NET "和 "Python",这样就可以对其内容进行后续编程操作,如读取数据、修改单元格值或应用格式化。
要使用 IronXL.Excel 选择 Excel 工作簿中的工作表,可以指定工作表索引或名称。
worksheet = workbook.WorkSheets[0]
该行选择加载的 Excel 工作簿中的第一个工作表,并将其分配给变量 "worksheet",以便在工作簿中的特定工作表上执行后续操作。 这将把 Excel 数据从 Excel 表加载到工作表变量中。
在本教程中,我们使用 SQLite 数据库而不是 MySQL 数据库服务器。 要启动数据库操作,我们首先要建立与数据库的连接。
import sqlite3
# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')
上面一行建立了与名为 "data.db "的 SQLite 数据库的连接。 如果指定的数据库不存在,将自动创建。 该连接可实现与 SQLite 数据库的后续交互,如执行查询和数据操作。
下一步是在数据库中创建一个数据库表,我们将从 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
)''')
上述代码片段初始化了一个游标对象,用于在 SQLite 数据库连接中执行 SQL 命令。 它创建了一个名为 "customer "的表,其中包含 "id"、"FirstName"、"LastName"、"Gender"、"Country "和 "Age "列。 如果表格还不存在,则按照指定的列数据类型创建表格。
现在,我们将向新创建的表中插入数据。 我们将导入 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()
上述代码遍历 Excel 工作表中的第 2 行至第 10 行,从 A 列至 F 列提取每一行的值。 这些值存储在一个元组中,代表要插入到 "客户 "表中的数据。 然后,游标执行 SQL INSERT 命令,将值元组纳入表中。 每一行都要重复这一过程,从而有效地将 Excel 文件中的数据导入 SQLite 数据库。 最后,conn.commit()提交事务,确保在数据库中保存和持久化更改。
要验证数据是否正确插入,可以使用 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()
上述代码在 SQLite 数据库中的 "客户 "表上执行 SELECT 查询,检索所有记录。 使用 fetchall 命令将获取的行存储到 "行 "变量中()方法。 然后,反复打印每一行,显示插入到 "客户 "表中的数据。 最后,使用 close()发布资源的方法。
完整代码为
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 和 IronXL 的强大功能,优化您的数据处理工作流程,满怀信心地推进您的项目。
9个 .NET API 产品 用于您的办公文件