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++中的线程库(std::thread)可以处理各种类型的函数作为线程函数,包括类的成员函数。对于类成员函数,我们需要考虑如何处理this指针,并注意线程的生命周期。 以下是将类成员函数作为线程函数的完整攻略: 步骤1:定义类 首先,需要定义一个含有成员函数的类。本例中,我们定义了一个简单的Counter类,它具有公共函数increment(),用于增加计…

    C 2023年5月22日
    00
  • 利用boost获取时间并格式化的方法

    使用Boost库可以方便地获取当前的时间并进行格式化。下面是实现该功能的步骤: 1. 引入Boost库 在C++中使用Boost库需要先安装该库,然后在代码中引入相关的头文件。 #include <boost/date_time.hpp> 2. 获取当前时间 使用Boost库中的boost::posix_time::microsec_clock:…

    C 2023年5月23日
    00
  • Flash Actionscript 优化指南

    Flash Actionscript 优化指南 为什么需要优化 在开发复杂的Flash应用程序时,如不进行优化,可能出现以下问题: 程序速度变慢,用户体验变差。 耗费更多的CPU周期和内存,使程序更容易崩溃。 代码杂乱无章,难以维护和扩展。 因此,优化是每个Flash开发人员必须掌握的技能。 优化方法 以下是几种常见的优化方法: 1. 尽量避免使用深度嵌套显…

    C 2023年5月22日
    00
  • C语言实现简单通讯录系统

    C语言实现简单通讯录系统攻略 1. 确定功能需求 在开始编写代码前,需要明确实现的功能需求。一个简单的通讯录功能包含以下几个方面: 添加联系人; 显示联系人列表; 修改联系人信息; 删除联系人。 2. 设计数据结构 在C语言中,可以使用结构体来存储联系人的相关信息。为了方便,我们可以使用动态内存分配来动态地创建存储联系人的结构体。 typedef struc…

    C 2023年5月23日
    00
  • PHP操作SQL Server数据库实现表的改查与统计

    下面是详细讲解“PHP操作SQL Server数据库实现表的改查与统计”的完整攻略。 1. 环境准备 在开始操作SQL Server数据库之前,需要确保已经完成以下准备工作: 安装PHP环境 安装SQL Server数据库 选定适用于PHP的SQL Server扩展 其中,有关于安装PHP环境的教程可以查阅官方手册,这里不再详细说明。而有关于SQL Serv…

    C 2023年5月23日
    00
  • golang croncli 定时器命令详解

    Golang Croncli定时器命令详解 Croncli是golang中一个用于定时执行任务的命令工具。它允许在固定的时间间隔内运行特定的命令或任务。本文将详细介绍croncli的使用方法,并提供两个示例说明。 安装 Croncli可以通过go命令来安装: $ go get github.com/robfig/cron/v3 使用 Croncli是通过go…

    C 2023年5月23日
    00
  • C++中new和delete的介绍

    C++中new和delete是用于动态内存分配和释放的操作符,本文将为大家详细讲解其用法和注意事项。 new 新建对象 C++中,我们可以使用new操作符在堆上分配内存,从而创建一个新对象。使用new的语法如下: type *pointer = new type; 其中type表示对象的类型,pointer是指向新分配对象的指针。 例如,在以下示例中,我们使…

    C 2023年5月23日
    00
  • 谈谈Spring AOP中@Aspect的高级用法示例

    下面是关于“谈谈Spring AOP中@Aspect的高级用法示例”的完整攻略: 1. 了解@Aspect的作用 在Spring AOP中,@Aspect是一个非常重要的注解,用于定义切面。通过切面,我们可以在不改变原来业务逻辑的基础上,实现对我们所感兴趣的部分进行增强或修改,从而达到一些特定的目的。 2. @Pointcut注解的使用 @Pointcut是…

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