导入 Excel 数据到数据库的过程可以分为两步:读取 Excel 数据和将数据写入数据库。下面将分别进行说明。
读取 Excel 数据
-
安装必要的依赖包
sh
pip install pandas openpyxl -
创建一个 Python 脚本,并导入
pandas
库python
import pandas as pd -
读取 Excel 文件
```python
读取 Excel 文件
df = pd.read_excel('excel_file.xlsx', engine='openpyxl')
``` -
查看读取到的数据
```python
打印前 10 行数据
print(df.head(10))
```
将数据写入数据库
-
安装必要的依赖包
sh
pip install sqlalchemy -
导入
sqlalchemy
库,创建数据库连接并定义表结构```python
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_baseengine = 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)) # 定义其他列
```
-
创建数据库表
python
Base.metadata.create_all(engine) -
将 Excel 数据写入数据库
```python
将 Excel 数据写入数据库
df.to_sql('excel_data', con=engine, if_exists='replace', index=False, chunksize=1000)
``` -
验证数据是否已经写入数据库
```python
from sqlalchemy.orm import sessionmakerSession = sessionmaker(bind=engine)
session = Session()data = session.query(ExcelData).first()
print(data.column_name1, data.column_name2, data.column_name3)
```
以上就是把 Excel 的数据导入数据库的完整攻略。下面是两条示例说明:
示例一
- 对于示例一,假设 Excel 文件名为 example.xlsx,文件中的数据如下:
名称 | 数量 | 价格 |
---|---|---|
商品1 | 10 | 29.99 |
商品2 | 7 | 19.99 |
商品3 | 3 | 9.99 |
商品4 | 5 | 49.99 |
- 通过上述攻略中的代码,将数据导入 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)
```
- 验证数据是否已经写入数据库
```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
示例二
- 对于示例二,假设 Excel 文件名为 data.xlsx,文件中的数据如下:
学生姓名 | 学号 | 年级 | 专业 |
---|---|---|---|
张三 | 1001 | 大一 | 计算机科学与技术 |
李四 | 1002 | 大二 | 软件工程 |
王五 | 1003 | 大三 | 信息安全 |
赵六 | 1004 | 大四 | 数学与应用数学 |
- 将数据导入 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)
```
- 验证数据是否已经写入数据库
```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技术站