如何实现读取Excel文件到SQL数据库? (读取excel sql数据库)

随着信息化建设的不断发展,数据管理和处理已成为各行各业不可或缺的一部分。同时,在工作和生活中,使用的软件和工具也不断增多。其中Excel表格作为一种常用的办公软件,凭借着易操作、图形化展示等特点,得到了广泛应用。但是,Excel表格数据一般较为简单,难以处理复杂的数据,此时SQL数据库就成为了我们更好的选择。另外,如果将Excel表格数据放到SQL数据库中来管理,有助于统一数据格式和规范,提高数据整合的效率。

接下来,本文将介绍如何实现读取Excel表格数据到SQL数据库,让我们享受更快、更便捷地管理数据的乐趣。

一、配置环境

在读取Excel到SQL数据库之前,首先需要搭建相应的环境环境。以下是最常见的几种语言环境和数据库环境:

1. Python + MySQL

Python作为一种易于上手的程序语言,有着许多第三方包可以帮助我们轻松地读取Excel表格数据。而MySQL数据库由于其开源、跨平台、支持多用户的特点,也成为了许多开发人员喜欢的数据库之一。

需要注意的是,Python需要装对应的包-xlrd、pymysql。

2. Java + MySQL

Java作为一种多用途开发语言,在数据处理方面也拥有良好的表现。而MySQL数据库作为Java工程中广泛使用的数据库,也是开发人员处理Excel数据存储到数据库中一个很好的选择。

需要注意的是,Java需要用到的包是apache POI和mysql连接驱动-jdbc.jar。

3. .NET + SQL Server

.NET作为Microsoft公司推出的开发框架,具有强大的功能、丰富的特性和良好的体系结构设计。而SQL Server作为Microsoft公司推出的关系型数据库管理系统,同样是数据处理常用的DBMS之一。

需要注意的是,.NET需要用到的是Microsoft.Ace.OleDb.12.0和System.Data.SqlClient。

二、读取Excel文件

有时我们需要将Excel文件中的数据读取到数据库中,以便数据归并或存储。以下我们将介绍如何使用Python读取Excel表格。

1. Python读取Excel表格

Python读取Excel有很多方式,此处介绍使用第三方包xlrd读取Excel表格的方法。xlrd是python读取Excel的第三方包,与xlsxwriter一样都是非常好用的第三方库。

Excel数据表格为

调用xlrd的open_workbook函数打开xls文件,并获取需要读取的工作表worksheet:

import os

import xlrd

path = os.getcwd()

filename = path + ‘/data.xlsx’

workbook = xlrd.open_workbook(filename)

worksheet = workbook.sheet_by_index(0)

nrows = worksheet.nrows

ncols = worksheet.ncols

2. Java读取Excel表格

Java读取Excel有很多库可供选择,常用的包括jxl、poi、easyexcel等。此处使用POI读取Excel表格:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.ss.usermodel.*;

FileInputStream fis = new FileInputStream(new File(“data.xls”));

Workbook workbook = new HSSFWorkbook(fis);

Sheet sheet = workbook.getSheetAt(0);

int rowCount = sheet.getLastRowNum();

3. C#读取Excel表格

C#读取Excel需要使用Microsoft提供的Microsoft.Ace.OleDb.12.0数据库连接组件和System.Data.SqlClient组件:

private System.Data.OleDb.OleDbConnection connection;

private System.Data.OleDb.OleDbDataAdapter oleDbAdapter;

private ExcelDataSet.事业部DataTable table;

try

{

connection = new System.Data.OleDb.OleDbConnection(“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\”data.xlsx\”;Extended Properties=\”Excel 8.0;HDR=YES;IMEX=1\””);

oleDbAdapter = new System.Data.OleDb.OleDbDataAdapter(“SELECT * FROM [Sheet1$]”, connection);

table = new ExcelDataSet.事业部DataTable();

oleDbAdapter.Fill(table);

}

catch (Exception ex)

{

throw new Exception(“读取Excel失败,错误信息:” + ex.Message);

}

finally

{

if (connection != null)

{

connection.Close();

}

}

三、将Excel中数据读取到数据库中

1. Python将数据存储到MySQL

下面介绍使用Python将Excel数据写入到MySQL数据库中的方法。由于Python本身并不支持MySQL,所以我们需要通过第三方库pymysql来实现与MySQL的交互。首先需要安装pymysql:

pip install pymysql

import pymysql

conn = pymysql.connect(host=’localhost’, user=’root’, passwd=’***’, db=’***’, port=3306, charset=’utf8′)

cursor = conn.cursor()

# 创建表结构

try:

cursor.execute(”’CREATE TABLE excelData(name VARCHAR(22), age INT(20), address VARCHAR(40))”’)

conn.commit()

except:

print(‘数据表已存在,无需再创。’)

conn.rollback()

# 插入数据

for i in range(1, nrows):

name = worksheet.cell(i, 0).value

age = int(worksheet.cell(i, 1).value)

address = worksheet.cell(i, 2).value

values = (name, age, address)

cursor.execute(“INSERT INTO excelData (name, age, address) VALUES (%s, %s, %s)”, values)

conn.commit()

2. Java将数据存储到MySQL

下面介绍使用Java将Excel数据写入到MySQL数据库中的方法。同样需要使用mysql-connector-java的jar包:

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.Row;

Connection conn = null;

PreparedStatement pstm = null;

try {

String url = “jdbc:mysql://localhost:3306/database?useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true”;

String username = “root”;

String password = “root”;

Class.forName(“com.mysql.cj.jdbc.Driver”);

conn = DriverManager.getConnection(url, username, password);

conn.setAutoCommit(false);

pstm = conn.prepareStatement(sql);

for (int i = 1; i

Row row = sheet.getRow(i);

if (row != null) {

Cell cell0 = row.getCell(0);

Cell cell1 = row.getCell(1);

Cell cell2 = row.getCell(2);

String name = cell0.getStringCellValue();

int age = (int)cell1.getNumericCellValue();

String address = cell2.getStringCellValue();

pstm.setString(1, name);

pstm.setInt(2, age);

pstm.setString(3, address);

pstm.executeUpdate();

}

}

conn.commit();

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

if (pstm != null) {

pstm.close();

}

if (conn != null) {

conn.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

3. C#将数据存储到SQL Server

下面介绍使用C#将Excel数据写入到SQL Server数据库中的方法:

private void BtnImport_Click(object sender, EventArgs e)

{

string connectionString = “Server=localhost;Database=database;User ID=sa;Password=***”;

string sql = “INSERT INTO excelData(name, age, address)VALUES(@name,@age,@address)”;

SqlConnection connection = new SqlConnection(connectionString);

try

{

connection.Open();

using (SqlCommand cmd = new SqlCommand(sql, connection))

{

for (int i = 0; i

{

DataRow row = table.Rows[i];

cmd.Parameters.Clear();

cmd.Parameters.AddWithValue(“@name”, row[0]);

cmd.Parameters.AddWithValue(“@age”, row[1]);

cmd.Parameters.AddWithValue(“@address”, row[2]);

cmd.ExecuteNonQuery();

}

}

}

catch (SqlException ex)

{

MessageBox.Show(ex.Message);

}

finally

{

connection.Close();

}

}

四、结语

通过执行以上步骤,我们可以将Excel表格中的数据读取并存储到数据库中,实现数据在不同软件及不同平台之间的可视化和共享。另外,在进行数据管理的过程中,我们也需要了解数据的结构及需要存储的字段,从而能够更好地管理和处理数据。在日常工作中,这些技能会以不同的形式展现出来,并且在未来的数据运维中,这些技能也会变得更为重要。


数据运维技术 » 如何实现读取Excel文件到SQL数据库? (读取excel sql数据库)