如何实现读取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中

之一步:登录到 SQL Server Management Studio

第二步:在 “对象资源管理器 ”中右键单击 “管理毕团 ”,在弹出列表中单击 “导入数据 ”

第三步:在 “导入向导 ”对话框中单击 “下一步 ”,进入到 “选择数据源 ”对话框,在 “数据源 ”列表中选择 “Microsoft Excel ”,同时选择相应的 Excel 文档,完成后单击 “下一步 ”(一定要勾选该对话框中的 “首行包含列名称 ”,因此它是将 Excel文档中的列标题为数据库表中的列项标题)

第备清四步:指定目标数据库服务,依次单击 “下一步 ”。。。。至到 “完成 ”

第五步:重新打到仿数前 SQL Server Management Studio,进入到导入的数据库表,可以发现所导入的 Excel文档数据。

在Excel中录入好数据以后,可能会有导入数据库的需求,这个时候就需要利用一些技巧导入。

如何将excel表导入数据库的方法:

1、对于把大量数据存放到数据库中,更好是用图形化数据库管理工具,可是如果没渣庆有了工具,只能执行命令的话这会是很费时间的事。那只能对数据进行组合,把数据组成insert语句然后在命令行中批量直行即可。

2、对下面数据进行组合,这用到excel中的一个功能。

在excel中有个fx的输入昌猜框,在这里把组好的字符串填上去就好了。

注:字符串1 & A2 &字符串2 & …

A2可以直接输入,也可以用鼠标点对应的单元格。

3、每个字符串之间用 & 符号进行连接。下面是之一条连接字符串

=”insert into tavern values(‘”&A2&”‘,'”&B2&”‘,'”&C2&”‘,'”&D2&”‘);”

写好后按回车键Enter就能组合出对应的字符串了。

insert into tavern values(‘jw_agi’耐梁型,’曙光’,’0′,’1′);

4、组好之一行的字符串后,把鼠标放到单元格右下方,出现加粗的十字,单击按下(别松开),一直往下拉,直到最后一行再放开就行了。

5、这样就把insert语句都整理好了,接下来就是把这些语句批量执行就可以了。

方法/步骤

  打开SQL Server Management Studio,按图中的路径进入导入数据界面。

  导入的时候需要将EXCEL的文件准备好,不能打开。点击下一步。

  数据源:选择“Microsoft Excel”除了EXCEL类型的数据,SQL还支持很多其它数据源类型。

  选择需要导入的EXCEL文件。点击浏览,找到导入的文件确定。

  再次确认文件路径没有问题,点击下一步。

  默认为是使用的WINODWS身份验证,改为使用SQL身份验证。输入数据库密码,注意:数据库,这里看看是不是导入的数据库。也可以在这里临时改变,选择其它数据库。

  选择导入数据EXCEL表内容范围,若有几个SHEET表,或一个SHEET表中有些数据我们不想导入,则可以编写查询指定的数据进行导入。点击下蠢昌瞎一步。

  选择我们需要导入的SHEET表,比如我在这里将SHEET表名改为price,则导入后生面的SQL数据库表为price$。点击进入下一步。

  点击进入下一步。

  在这里完整显示了我们的导入的信息,执行内容,再次确认无误带空后,点击完成,开始执行。

  可以看到任务执行的过程和进度。

  执行成功:我们可以看看执行结果,已传输1754行,表示从EXCEL表中导入1754条数据,包括列名标题。这样就完成了,执行SQL查询语句:SELECT * FROM price$就可以查看已导入的数据迅首内容。

方法/步骤

打开sql server 2023,如袭弯数图,并且准备好Excel数据表,下面工作马上开始闹亏

打开sql server 2023之后随意选择一个数据库,右击任务——导入数据。

导入数据之一个页面,点击下一步

选择数据源为Excel,选择文件路径和Excel版本,点击下一步

选择目标源和服务器名称,使用你自己的登录方式,点击下一步,选择之一个选项,复制。。。。

选择表和数据目标,如图所示,可以点击预览,然后下一步——立即执行——下一步——完成

传拍首输完成,如图所示

刷新数据库,查看新出现的数据表,就可以发现新导入的数据了,OK了

下面是使用Java实现的,将Excel数据表中的数据导入到数据库里里面。

public class ReadExcel {

   /**

    * 对外提供读取excel 的方法

    * */

   public static List> readExcel(File file) throws IOException {

String fileName = file.getName();

String extension = fileName.lastIndexOf(“.”) == -1 ? “” : fileName

 .substring(fileName.lastIndexOf(“.”) + 1);

if (“xls”.equals(extension)) {

return read2023Excel(file);

} else if (“xlsx”.equals(extension)) {

return read2023Excel(file);

} else {

 戚蠢throw new IOException(“运迹不支持的文件类型”);

}

   }

   /**

    * 读取 office 2023 excel

    *

    * @throws IOException

    * @throws FileNotFoundException

    */

   private static List> read2023Excel(File file)

throws IOException {

List> list = new LinkedList>();

HSSFWorkbook hwb = new HSSFWorkbook(new FileInputStream(file));

HSSFSheet sheet = hwb.getSheetAt(0);

Object value = null;

HSSFRow row = null;

HSSFCell cell = null;

int counter = 0;

for (int i = sheet.getFirstRowNum(); counter linked = new LinkedList();

for (int j = row.getFirstCellNum(); j > read2023Excel(File file)

throws IOException {

List> list = new LinkedList>();

// 构造 XSSFWorkbook 对象,strPath 传入文件路径

XSSFWorkbook xwb = new XSSFWorkbook(new FileInputStream(file));

// 读取之一章表格内容

XSSFSheet sheet = xwb.getSheetAt(0);

Object value = null;

XSSFRow row = null;

XSSFCell cell = null;

int counter = 0;

for (int i = sheet.getFirstRowNum(); counter linked = new LinkedList();

for (int j = row.getFirstCellNum(); j > list = readExcel(new File(filePath));

 request.setAttribute(“list”, list);

 RequestDispatcher dispatcher = request

.getRequestDispatcher(“/read.jsp”);

 dispatcher.forward(request, response);

*/

} catch (IOException e) {

e.printStackTrace();

}

   }

}

关于读取excel sql数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


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