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日

相关文章

  • 在Linux系统上进行openmp多线程编程的方法

    在Linux系统上进行OpenMP多线程编程的方法如下: 1. 安装OpenMP库和编译器 在Linux系统中使用OpenMP多线程编程需要安装OpenMP库和编译器。在大多数Linux系统上,OpenMP库和编译器可以通过包管理工具安装。例如,在Ubuntu系统中,可以通过以下命令安装: sudo apt-get install libomp-dev g+…

    C 2023年5月22日
    00
  • C++中Boost的转换函数

    Boost库是一个为C++编程语言提供了许多扩展和增强功能的库。其中Boost库中的转换函数以简单的方式支持数字、字符串、日期和时间之间的转换。此处介绍Boost库转换函数的相关知识和应用。 Boost库的转换函数 Boost库提供了一些方便的转换函数,这些转换函数能够涉及到数字、字符串和时间等类型之间的转换。以下为一些常见的转换函数: lexical_ca…

    C 2023年5月23日
    00
  • C++为什么要用指针而不直接使用对象?

    作为C++的重要特性之一,指针是C++中最具代表性的概念之一。该特性在程序的开发过程中发挥了很大的作用。下面我们来探讨一下,C++为什么要使用指针而不是直接使用对象。 1. 什么是指针 在 C++ 语言中,指针是一种数据类型,它指向其他类型数据的地址。我们可以使用指针来读取内存中的数据,或修改内存中的数据。定义指针时,需要将其类型与指向对象的类型进行匹配。 …

    C 2023年5月22日
    00
  • Java正则表达式之分组和替换方式

    Java正则表达式之分组和替换方式 正则表达式是用于匹配和处理文本的非常强大的工具。在Java中,我们可以使用java.util.regex包中的类来实现正则表达式。 在这篇攻略中,我们将讨论正则表达式中的分组和替换方式。 正则表达式中的分组 我们可以使用括号来将正则表达式中的一部分分组,方便后续的操作。分组可以用来匹配、搜索和替换文本中的模式。 例如,我们…

    C 2023年5月23日
    00
  • GCC 编译使用动态链接库和静态链接库的方法

    当我们编写C或C++代码时,我们经常需要使用堆、栈和内存分配等等功能,而这些功能代码通常不在我们自己的项目中。为了让这些代码能够在我们的代码中工作,我们需要链接库,这些库分为两种:动态链接库和静态链接库。本文将详细讲解GCC编译使用动态链接库和静态链接库的方法,并提供两条示例说明。 动态链接库 动态链接库(Dynamic Linking Library)是指…

    C 2023年5月23日
    00
  • 小米4c怎么样?小米4C发布会全程回放(图文评测)

    小米4c评测攻略 简介 小米4c是小米科技于2015年9月发布的一款手机,标志着小米4系列的升级。这款手机拥有优秀的性能和良好的用户体验,是一款性价比较高的手机。 在本篇攻略中,我们将全面讲解小米4c的机型特点,性能表现,使用评测等相关内容,以帮助感兴趣的用户更好地了解小米4c的情况。 小米4c机型特点 小米4c继承了小米4系列的设计风格,整体外观简单大方。…

    C 2023年5月22日
    00
  • C语言实现扫雷游戏(初级版)

    C语言实现扫雷游戏(初级版)完整攻略 一、简介 扫雷游戏是一款经典的休闲小游戏,由于其简单易懂、容易上手的特点,受到了很多人的喜爱。本文将详细讲解如何使用C语言实现扫雷游戏的初级版。 二、准备工作 在开始编写代码之前,我们需要安装一个C语言编译器。这里推荐使用gcc编译器,在Linux和MacOS系统上可以直接使用,如果是Windows系统则需要先安装Cyg…

    C 2023年5月23日
    00
  • C++中对象与类的详解及其作用介绍

    C++中对象与类的详解及其作用介绍 什么是对象? 在面向对象编程语言中,可以通过类来定义对象。对象是类的一个实例化,是由数据和方法组成的。 一个类可以被当作模板,从而创建多个对象。每个对象都可以访问类中的方法和变量,但是每个对象都有自己的一套数据副本。 什么是类? 类是一种用户定义的数据类型,它封装了数据和方法。数据成员表示类的属性,方法成员表示类的操作。 …

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