C++ 中实现把EXCEL的数据导入数据库(ACCESS、MSSQL等)实例代码

导入 Excel 数据到数据库的过程可以分为两步:读取 Excel 数据和将数据写入数据库。下面将分别进行说明。

读取 Excel 数据

  1. 安装必要的依赖包

    sh
    pip install pandas openpyxl

  2. 创建一个 Python 脚本,并导入 pandas

    python
    import pandas as pd

  3. 读取 Excel 文件

    ```python

    读取 Excel 文件

    df = pd.read_excel('excel_file.xlsx', engine='openpyxl')
    ```

  4. 查看读取到的数据

    ```python

    打印前 10 行数据

    print(df.head(10))
    ```

将数据写入数据库

  1. 安装必要的依赖包

    sh
    pip install sqlalchemy

  2. 导入 sqlalchemy 库,创建数据库连接并定义表结构

    ```python
    from sqlalchemy import create_engine, Column, Integer, String
    from sqlalchemy.ext.declarative import declarative_base

    engine = create_engine('database://user:password@host:port/database_name')
    Base = declarative_base()

    class ExcelData(Base):
    tablename = 'excel_data'

    id = Column(Integer, primary_key=True)
    column_name1 = Column(String(255))
    column_name2 = Column(Integer)
    column_name3 = Column(String(255))
    # 定义其他列
    

    ```

  3. 创建数据库表

    python
    Base.metadata.create_all(engine)

  4. 将 Excel 数据写入数据库

    ```python

    将 Excel 数据写入数据库

    df.to_sql('excel_data', con=engine, if_exists='replace', index=False, chunksize=1000)
    ```

  5. 验证数据是否已经写入数据库

    ```python
    from sqlalchemy.orm import sessionmaker

    Session = sessionmaker(bind=engine)
    session = Session()

    data = session.query(ExcelData).first()
    print(data.column_name1, data.column_name2, data.column_name3)
    ```

以上就是把 Excel 的数据导入数据库的完整攻略。下面是两条示例说明:

示例一

  1. 对于示例一,假设 Excel 文件名为 example.xlsx,文件中的数据如下:
名称 数量 价格
商品1 10 29.99
商品2 7 19.99
商品3 3 9.99
商品4 5 49.99
  1. 通过上述攻略中的代码,将数据导入 SQL Server 数据库中。

```python
import pandas as pd
from sqlalchemy import create_engine, Column, Integer, Float, String
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine('mssql+pyodbc://user:password@server/database_name?driver=SQL+Server')
Base = declarative_base()

class Commodity(Base):
tablename = 'commodity'

   id = Column(Integer, primary_key=True)
   name = Column(String(255))
   quantity = Column(Integer)
   price = Column(Float)

Base.metadata.create_all(engine)

df = pd.read_excel('example.xlsx', engine='openpyxl')
df.to_sql('commodity', con=engine, if_exists='replace', index=False, chunksize=1000)
```

  1. 验证数据是否已经写入数据库

```python
from sqlalchemy.orm import sessionmaker

Session = sessionmaker(bind=engine)
session = Session()

commodity = session.query(Commodity).first()
print(commodity.name, commodity.quantity, commodity.price)
```

运行以上代码,输出结果如下:

sh
商品1 10 29.99

示例二

  1. 对于示例二,假设 Excel 文件名为 data.xlsx,文件中的数据如下:
学生姓名 学号 年级 专业
张三 1001 大一 计算机科学与技术
李四 1002 大二 软件工程
王五 1003 大三 信息安全
赵六 1004 大四 数学与应用数学
  1. 将数据导入 Access 数据库中。

```python
import pandas as pd
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine('access+pyodbc://user:password@server/database_path')
Base = declarative_base()

class Student(Base):
tablename = 'student'

   id = Column(Integer, primary_key=True)
   name = Column(String(255))
   student_id = Column(Integer)
   grade = Column(String(255))
   major = Column(String(255))

Base.metadata.create_all(engine)

df = pd.read_excel('data.xlsx', engine='openpyxl')
df.to_sql('student', con=engine, if_exists='replace', index=False, chunksize=1000)
```

  1. 验证数据是否已经写入数据库

```python
from sqlalchemy.orm import sessionmaker

Session = sessionmaker(bind=engine)
session = Session()

student = session.query(Student).first()
print(student.name, student.student_id, student.grade, student.major)
```

运行以上代码,输出结果如下:

sh
张三 1001 大一 计算机科学与技术

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++ 中实现把EXCEL的数据导入数据库(ACCESS、MSSQL等)实例代码 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • c语言计算三角形面积代码

    下面是C语言计算三角形面积代码的完整攻略。 步骤 步骤1:定义变量 首先,我们需要定义三角形的三条边长变量a、b、c和面积变量s,代码如下: float a, b, c, s; 这里使用了浮点型变量类型float,因为三角形的边长和面积可能是小数。 步骤2:输入变量值 然后,我们需要从用户输入三角形的三条边长,代码如下: printf("请输入三角…

    C 2023年5月24日
    00
  • json实现添加、遍历与删除属性的方法

    使用 JSON(JavaScript Object Notation)添加、遍历和删除属性是一个常见的需求,下面是实现这些操作的方法。 添加属性 使用 JSON 对象可以轻松地添加新属性。在 JavaScript 中,可以用点号或中括号语法访问对象的属性。对于 JSON,属性名称必须是一个包含引号的字符串。 以下示例演示如何向 JSON 对象添加属性: //…

    C 2023年5月23日
    00
  • php通过文件头判断格式的方法

    当我们通过PHP对一个文件进行处理的时候,有时候我们需要判断该文件的格式,从而进一步进行处理。在PHP中,我们可以通过文件头来判断文件的格式。 文件头,也称为魔数(Magic Number),是一个文件开头的特定几个字节,常用来标识文件类型。每种文件类型都有自己的魔数,根据不同的魔数来判断文件的类型,可以防止拓展名被篡改的情况下被误判。 判断文件类型的方法:…

    C 2023年5月23日
    00
  • C语言实现二叉树遍历的迭代算法

    C语言实现二叉树遍历的迭代算法可以分为三种:前序遍历、中序遍历和后序遍历。下面分别进行详细讲解: 前序遍历 前序遍历的迭代算法相对简单,可以通过栈结构实现。具体过程如下: 将根节点入栈。 循环执行以下步骤直至栈为空: 弹出栈顶节点并打印。 如果该节点的右子节点不为空,将其入栈。 如果该节点的左子节点不为空,将其入栈。 示例代码如下: void preorde…

    C 2023年5月22日
    00
  • C++ class和struct到底有什么区别详解

    C++中的class和struct定义方式非常相似,都可以包含成员变量和成员函数,甚至可以互相继承。但实际上,class和struct还是存在一些差别的。下面从以下三个方面对它们进行详细的比较: 定义语法 在定义上,class和struct的语法非常相似,但是有一个小差别: // 定义class class MyClass { public: int a; …

    C 2023年5月23日
    00
  • c++ 如何在libuv中实现tcp服务器

    C++ 中通常使用 libuv 库来实现 TCP 服务器。下面是使用 libuv 库实现 TCP 服务器的完整攻略。 准备工作 首先需要做的是安装 libuv 库,并配置好 C++ 项目使其能够使用该库。Windows 操作系统可以直接下载预编译的库,然后在项目设置中配置库的路径和头文件路径。Linux 操作系统可以通过包管理器进行安装。 创建 TCP 服务…

    C 2023年5月23日
    00
  • Kotlin Option与Either及Result实现异常处理详解

    Kotlin Option 与 Either及 Result 实现异常处理详解 在编程中,异常处理是非常重要的一部分,能够有效地避免程序出现错误,为程序的健壮性做出了很大贡献。其中,Kotlin为开发者提供了Option、Either和Result三种异常处理的方式,本文将对其进行详细讲解。 Option Option,意为选项。代表一个值可能存在也可能不存…

    C 2023年5月23日
    00
  • YII Framework教程之异常处理详解

    YII Framework教程之异常处理详解 在YII Framework中,异常处理是非常重要的一个方面。合理处理异常可以有效提高程序的健壮性、可靠性和安全性。下面是关于YII Framework异常处理的详解。 异常处理的作用 异常处理可以有效帮助程序员更好地捕获和处理程序中可能出现的异常,比如错误的用户输入、系统异常或者外部错误。合理的异常处理可以让程…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部