使用Java将Excel数据导入数据库 (java excel 导入数据库)

随着互联网的发展和大数据的兴起,数据的处理和管理成为了企业和个人不可或缺的能力。其中,将Excel表格中的数据导入数据库是一种常见的数据处理方式。本文将介绍如何利用Java语言将Excel中的数据导入到MySQL数据库中。

一、环境配置

在进行Excel数据导入之前,需要先准备好相应的环境。我们需要从官网上下载JDBC驱动程序,并将其加入Java项目中;同时,我们还需要依赖POI库来读取Excel文件。

二、读取Excel文件

Java中读取Excel文件的方式有很多,本文将介绍一种基于Apache POI的读取方式。

1.导入POI库:

“`

org.apache.poi

poi

4.1.2

org.apache.poi

poi-ooxml

4.1.2

“`

2.代码实现:

“`

public static void readExcel(String filePath) throws IOException {

// 创建 Excel 文件的输入流对象

FileInputStream excelFile = new FileInputStream(new File(filePath));

Workbook workbook = null;

// 根据文件后缀名不同(xls和xlsx)获得不同的Workbook实现类对象

if (filePath.endsWith(“xls”)) {

workbook = new HSSFWorkbook(excelFile);

} else if (filePath.endsWith(“xlsx”)) {

workbook = new XSSFWorkbook(excelFile);

}

// 获得之一个sheet的内容

Sheet sheet = workbook.getSheetAt(0);

// 获得sheet中的所有行

Iterator rows = sheet.iterator();

// 遍历所有行

while (rows.hasNext()) {

Row row = rows.next();

// 获得当前行的所有列

Iterator cells = row.iterator();

while (cells.hasNext()) {

Cell cell = cells.next();

// 根据单元格的类型读取相应的数据

switch (cell.getCellType()) {

case STRING:

System.out.print(cell.getStringCellValue() + “\t”);

break;

case NUMERIC:

System.out.print(cell.getNumericCellValue() + “\t”);

break;

case BOOLEAN:

System.out.print(cell.getBooleanCellValue() + “\t”);

break;

default:

break;

}

}

System.out.println();

}

excelFile.close();

}

“`

通过上述代码实现,我们可以将Excel文件中的内容读取出来,并输出到控制台中,也可以将其保存到数据库中。

三、连接数据库

数据导入的前提是需要在Java程序中连接上MySQL数据库。连接流程大致为:加载数据库驱动程序,创建连接,关闭连接。其中,需要在Java项目中引入外部的MySQL数据库驱动jar包,MySQL Connector/J是使用最广泛的JDBC驱动。

1.导入MySQL Connector/J库:

“`

mysql

mysql-connector-java

8.0.26

“`

2.代码实现:

“`

public static Connection getConnection() {

String driver = “com.mysql.cj.jdbc.Driver”;

String url = “jdbc:mysql://localhost:3306/test”;

String username = “root”;

String password = “123456”;

Connection conn = null;

try {

Class.forName(driver);

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

if(conn!=null){

System.out.println(“连接成功!”);

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return conn;

}

“`

通过上述代码实现,我们可以连接上MySQL数据库并输出连接成功的信息。

四、数据导入

连接上数据库之后,我们需要将Excel文件中的数据逐条插入到数据库中。

1.编写插入语句:

“`

String sql = “INSERT INTO student (id, name, age, sex) VALUES (?, ?, ?, ?)”;

“`

2.将Excel文件中的数据插入到数据库中:

“`

public static void insertData() throws IOException, SQLException {

Connection conn = getConnection();

String filePath = “C:/Users/Administrator/Desktop/student.xlsx”;

FileInputStream excelFile = new FileInputStream(new File(filePath));

Workbook workbook = null;

if (filePath.endsWith(“xls”)) {

workbook = new HSSFWorkbook(excelFile);

} else if (filePath.endsWith(“xlsx”)) {

workbook = new XSSFWorkbook(excelFile);

}

Sheet sheet = workbook.getSheetAt(0);

Iterator rows = sheet.iterator();

while (rows.hasNext()) {

Row row = rows.next();

Iterator cells = row.iterator();

PreparedStatement pstmt = conn.prepareStatement(sql);

while (cells.hasNext()) {

Cell cell = cells.next();

switch (cell.getCellType()) {

case STRING:

pstmt.setString(1, cell.getStringCellValue());

pstmt.setString(2, cell.getStringCellValue());

pstmt.setString(4, cell.getStringCellValue());

break;

case NUMERIC:

if (DateUtil.isCellDateFormatted(cell)) {

pstmt.setDate(3, new java.sql.Date(cell.getDateCellValue().getTime()));

} else {

pstmt.setInt(1, (int) cell.getNumericCellValue());

pstmt.setInt(3, (int) cell.getNumericCellValue());

}

break;

default:

break;

}

}

pstmt.executeUpdate();

System.out.println(“插入成功!”);

}

excelFile.close();

conn.close();

}

“`

通过上述代码实现,我们可以将Excel文件中的数据插入到MySQL数据库中。

相关问题拓展阅读:

  • 如何用java导入Excel数据到数据库

如何用java导入Excel数据到数据库

你是怎么样用JAVA从EXCEL中取得数据不了解?

导入数据库,就是从EXCEL中取得数据,

然后生成INSERT语句,向数据库中插入数据。

参考下面代码:

import java.io.File;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Iterator;

import jxl.Workbook;

import jxl.write.Label;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import jxl.write.WriteException;

import jxl.write.biff.RowsExceededException;

public class WriteExcel {

WritableWorkbook book=null;

public void OutputExcel(ArrayList arlist,String Path){

try{

book = Workbook.createWorkbook(new File(Path));

//设置表名

WritableSheet sheet = book.createSheet(“考试单”,0);

//生成表格题头

Label labe1 = new Label(0, 0, “考生姓名” );

Label labe2 = new Label(1, 0, “地区”);

Label labe3 = new Label(2, 0, “所属院校”);

Label labe4 = new Label(3, 0, “班级”);

Label labe5 = new Label(4, 0, “考试号”);

Label labe6 = new Label(5, 0, “考试时间”);

Label labe7 = new Label(6, 0, “科目名称”);

//将生成的单元格添加到工作表中

sheet.addCell(labe1);

sheet.addCell(labe2);

sheet.addCell(labe3);

sheet.addCell(labe4);

sheet.addCell(labe5);

sheet.addCell(labe6);

sheet.addCell(labe7);

Iterator it = arlist.iterator();

int i = 1;

while(it.hasNext()){

//通过迭代获得arlist里的MarkesData对象

MarkesData temp = (MarkesData)it.next();

//取得数据生成单元格

Label label1=new Label(0,i,temp.getUser_name());

Label label2=new Label(1,i,temp.getArea_name());

Label label3=new Label(2,i,temp.getCollege_name());

Label label4=new Label(3,i,temp.getClass_name());

Label label5=new Label(4,i,temp.getTest_name());

Label label6=new Label(5,i,temp.getStarttime());

Label label7=new Label(6,i,temp.getSubject_name());

//将生成的单元格添加到工作表中

sheet.addCell(label1);

sheet.addCell(label2);

sheet.addCell(label3);

sheet.addCell(label4);

sheet.addCell(label5);

sheet.addCell(label6);

sheet.addCell(label7);

i++;

}

book.write();

book.close();

} catch (RowsExceededException e) {

e.printStackTrace();

} catch (WriteException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally{

try{

if(book!=null)book.close();

}catch(Exception e){

System.out.println(“exception when closing Connection in finally”);

System.out.println(e.getMessage().toString());

}

}

}

}

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

香港服务器首选树叶云,2H2G首月10元开通。
树叶云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/301357.html<

(0)
运维的头像运维
上一篇2025-05-24 07:20
下一篇 2025-05-24 07:22

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注