excel文件存入mysql_解析excel文件并将数据导入到数据库中

今天领导给安排了一个临时工作,让我将一个excel里面的数据解析后放入数据库中,经过一个下午的努力成功完成,现在将代码献上,希望对大家有所帮助

一、需要导入的jar

1.commons-collections4-4.1.jar

2.poi-3.17-beta1.jar

3.poi-ooxml-3.17-beta1.jar

4.poi-ooxml-schemas-3.17-beta1.jar

5.xmlbeans-2.6.0.jar

对应的maven依赖如下:

net.sourceforge.jexcelapi

jxl

2.6.12

org.apache.commons

commons-collections4

4.1

org.apache.poi

poi

3.17-beta1

org.apache.poi

poi-ooxml-schemas

3.17-beta1

org.apache.xmlbeans

xmlbeans

2.6.0

org.apache.poi

poi-ooxml

3.17-beta1

二、主要API

1.import org.apache.poi.ss.usermodel.Workbook,对应Excel文档;

2.import org.apache.poi.hssf.usermodel.HSSFWorkbook,对应xls格式的Excel文档;

3.import org.apache.poi.xssf.usermodel.XSSFWorkbook,对应xlsx格式的Excel文档;

4.import org.apache.poi.ss.usermodel.Sheet,对应Excel文档中的一个sheet;

5.import org.apache.poi.ss.usermodel.Row,对应一个sheet中的一行;

6.import org.apache.poi.ss.usermodel.Cell,对应一个单元格。

三、对应带代码如下:

1.TestExcelToDb 类代码

package com.it.intelligent.list.dto;

import java.sql.*;

import java.util.List;

public class TestExcelToDb {

String url ="jdbc:postgresql://10.43.225.69:5432/it?currentSchema=it";

String user="11";

String pwd="11";

Connection conn=null;

ResultSet rs=null;

public void dataBase() {

try {

Class.forName("org.postgresql.Driver");

conn= DriverManager.getConnection(url, user, pwd);

} catch (ClassNotFoundException e) {

System.out.println("装载JDBC 驱动程序失败");

e.printStackTrace();

} catch (SQLException e) {

System.out.println("无法连接数据库");

e.printStackTrace();

}

}

//增删修改

public int addU(String sql,String str[]) {

int a=0;

try {

PreparedStatement pst=conn.prepareStatement(sql);

if (str!=null) {

for (int i = 0; i < str.length; i++) {

pst.setString(i+1, str[i]);

}

}

a=pst.executeUpdate();

} catch (Exception e) {

// TODO: handle exception

}

return a;

}

public static void main(String[] args) {

//得到表格中所有的数据

List listExcel=StuService.getAllByExcel("D:/l4/百货部分数据.xlsx");

TestExcelToDb testExcelToDb =new TestExcelToDb();

testExcelToDb.dataBase();

System.out.println(listExcel.size());

int sum=0;

for (TempData tempData : listExcel) {

String sql="insert into temp_data(l4_gds_grp_cd,l4_gds_grp_nm,gds_cd,vendor_cd,gds_nm)values(?,?,?,?,?)";

String[] str=new String[] {tempData.getL4GdsGrpCd(),tempData.getL4GdsGrpNm(),tempData.getGdsCd(),tempData.getVendorCd(),tempData.getGdsNm()+""};

testExcelToDb.addU(sql, str);

sum++;

}

System.out.println(sum);

}

}

2.StuService 代码

package com.it.intelligent.list.dto;

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

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

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

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

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

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.util.ArrayList;

import java.util.List;

public class StuService {

//查询指定目录中电子表格中所有的数据

public static List getAllByExcel(String file) {

Workbook wb = null;

Sheet sheet = null;

Row row = null;

List list = null;

wb = readExcel(file);

if (wb != null) {

//用来存放表中数据

list =new ArrayList<>();

//获取第一个sheet

sheet = wb.getSheetAt(0);

//获取最大行数

int rownum = sheet.getPhysicalNumberOfRows();

//获取第一行

row = sheet.getRow(0);

//获取最大列数

int colnum = row.getPhysicalNumberOfCells();

for (int i = 1; i < rownum; i++) {

row = sheet.getRow(i);

if (row != null) {

for (int j = 0; j < colnum; j++) {

Cell cell = row.getCell(j);

String cellValue = cell.getRichStringCellValue().getString();

String[] strings = cellValue.split("#NLP#");

System.out.println(strings.length);

TempData tempData = new TempData();

tempData.setL4GdsGrpCd(strings[0]);

tempData.setL4GdsGrpNm(strings[1]);

tempData.setGdsCd(strings[2]);

tempData.setVendorCd(strings[4]);

tempData.setGdsNm(strings[3]);

list.add(tempData);

}

} else {

break;

}

}

}

return list;

}

//读取excel

public static Workbook readExcel(String filePath) {

Workbook wb = null;

if (filePath == null) {

return null;

}

String extString = filePath.substring(filePath.lastIndexOf("."));

InputStream is = null;

try {

is = new FileInputStream(filePath);

if (".xls".equals(extString)) {

return wb = new HSSFWorkbook(is);

} else if (".xlsx".equals(extString)) {

return wb = new XSSFWorkbook(is);

} else {

return wb = null;

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return wb;

}

}

3.TempData 代码

package com.it.intelligent.list.dto;

public class TempData {

private String l4GdsGrpCd;

private String l4GdsGrpNm;

private String gdsCd;

private String vendorCd;

private String categoryCd;

private String categoryNm;

private String gdsNm;

private String listWords;

private String updateTime;

private String etlTime;

public String getL4GdsGrpCd() {

return l4GdsGrpCd;

}

public void setL4GdsGrpCd(String l4GdsGrpCd) {

this.l4GdsGrpCd = l4GdsGrpCd;

}

public String getL4GdsGrpNm() {

return l4GdsGrpNm;

}

public void setL4GdsGrpNm(String l4GdsGrpNm) {

this.l4GdsGrpNm = l4GdsGrpNm;

}

public String getGdsCd() {

return gdsCd;

}

public void setGdsCd(String gdsCd) {

this.gdsCd = gdsCd;

}

public String getVendorCd() {

return vendorCd;

}

public void setVendorCd(String vendorCd) {

this.vendorCd = vendorCd;

}

public String getCategoryCd() {

return categoryCd;

}

public void setCategoryCd(String categoryCd) {

this.categoryCd = categoryCd;

}

public String getCategoryNm() {

return categoryNm;

}

public void setCategoryNm(String categoryNm) {

this.categoryNm = categoryNm;

}

public String getGdsNm() {

return gdsNm;

}

public void setGdsNm(String gdsNm) {

this.gdsNm = gdsNm;

}

public String getListWords() {

return listWords;

}

public void setListWords(String listWords) {

this.listWords = listWords;

}

public String getUpdateTime() {

return updateTime;

}

public void setUpdateTime(String updateTime) {

this.updateTime = updateTime;

}

public String getEtlTime() {

return etlTime;

}

public void setEtlTime(String etlTime) {

this.etlTime = etlTime;

}

}

4.excel中数据如图所示:

2768a6a493f180d185e903f072778206.png

四:运行结果

1a4379466383b3bf05e4f27feb5437a8.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android app性能优化_Android性能优化之Apk 瘦身优化

瘦身主要是下载转换率提高头部App都有Lite版本渠道合作产商要求APK 分析工具ApkTool 反编译工具官网&#xff1a;https://ibotpeaches.github.io/ApkTool apktool d students.apkAnalyze apkAndroid studio 2.2之后使用 - 查看apk组成大小&#xff0c;各资源占比 - 查看dex文件…

Java类的属性

在 Java 中类的成员变量定义了类的属性。例如&#xff0c;一个学生类中一般需要有姓名、性别和年龄等属性&#xff0c;这时就需要定义姓名、性别和年龄 3 个属性。声明成员变量的语法如下&#xff1a; [public|protected|private][static][final]<type><variable_nam…

vue 拖动 datatransfer 问题_electron-vue跨平台桌面应用开发实战教程(四)——窗口样式amp;打开新窗口...

&#xfeff;> 本文我们讲解下怎么修改窗口样式&#xff0c;系统默认的窗口非常普通&#xff0c;通常与设计不符&#xff0c;所以我们要自定义&#xff0c;接下来我们讲解下怎么去掉原有样式&#xff0c;怎么实现实现窗口的最小化&#xff0c;最大化和关闭按钮。还有怎么打开…

string 包含_一文搞懂String常见面试题,从基础到实战,到原理分析和源码解析...

01 string基础1.1 Java String 类字符串广泛应用 在 Java 编程中&#xff0c;在 Java 中字符串属于对象&#xff0c;Java 提供了 String 类来创建和操作字符串。1.2 创建字符串创建字符串最简单的方式如下:String greeting "菜鸟教程";在代码中遇到字符串常量时&…

RPN网络在图像处理中的应用

RPN&#xff08;Region Proposal Network&#xff0c;区域建议网络&#xff09;是深度学习中用于目标检测的关键组件之一&#xff0c;它通常与后续的目标检测网络&#xff08;如Fast R-CNN、Faster R-CNN等&#xff09;结合使用。RPN的主要作用是生成候选目标区域&#xff0c;从…

Java创建一个学生类

创建一个表示学生的实体类 Student&#xff0c;其中有学生姓名、性别和年龄信息。要求使用属性来表示学生信息&#xff0c;最终编写测试代码。 首先定义一个名为 Student 的类&#xff0c;代码如下&#xff1a; public class Student {// 学生类 }在类中通过属性定义学生、性…

pythonwhile爬虫教程_Python 爬虫从入门到进阶之路(十一)

之前的文章我们介绍了一下 Xpath 模块&#xff0c;接下来我们就利用 Xpath 模块爬取《糗事百科》的糗事。之前我们已经利用 re 模块爬取过一次糗百&#xff0c;我们只需要在其基础上做一些修改就可以了&#xff0c;为了保证项目的完整性&#xff0c;我们重新再来一遍。我们通过…

python中fd是什么意思_python里fd是什么意思

文件描述字(file descriptor&#xff0c;fd)是系统中用来唯一记录当前已经打开的文件的标识号&#xff0c;fd是一个整数。除了file对象外&#xff0c;Python还提供对fd的操作&#xff0c;对fd的操作更加底层&#xff0c;fd和Python中的file对象是不同的概念。在介绍file对象时已…

show index mysql_MySQL SHOW INDEX语法的实际应用

以下的文章主要描述的是MySQL SHOW INDEX语法的实际操作用法以及其实际查看索引状态(语法)的具体内容的描述&#xff0c;如果你对这一技术&#xff0c;心存好奇的话&#xff0c;以下的文章将会揭开它的神秘面纱。SHOW INDEX FROM tbl_name [FROM db_name]MySQL SHOW INDEX会返回…

阿联酋esma认证怎么做_百度爱采购企业认证是怎么做的?这些你要知道!

入驻百度爱采购的企业可以获得认证标识&#xff0c;这个标识是企业品牌树立的重要表现&#xff0c;在产品展示页面和百度首页搜索企业名称都有企业信息的醒目展示&#xff0c;并且可以直接跳转到企业店铺&#xff0c;为企业带来流量的同时&#xff0c;还能进行品牌的宣传。百度…

Java this关键字详解

this 关键字是 Java 常用的关键字&#xff0c;可用于任何实例方法内指向当前对象&#xff0c;也可指向对其调用当前方法的对象&#xff0c;或者在需要当前类型对象引用时使用。 this.属性名 大部分时候&#xff0c;普通方法访问其他方法、成员变量时无须使用 this 前缀&#…

zabbixdocker里的mysql_基于Docker安装与部署Zabbix

今天测试了一天的Zabbix-Docker&#xff0c;部署起来确实方便&#xff0c;就需要在安装了Docker的linux系统中输入以下命令就可以了。1.安装MysqL数据库,启动一个空的MysqL服务器实例docker run Cname zabbix-DB -t \-e MysqL_DATABASE”zabbix” \-e MysqL_USER”zabbix” \-e…

Java创建对象详解

对象是对类的实例化。对象具有状态和行为&#xff0c;变量用来表明对象的状态&#xff0c;方法表明对象所具有的行为。Java 对象的生命周期包括创建、使用和清除, Java 语言中创建对象分显式创建与隐含创建两种情况。 显式创建对象 对象的显式创建方式有 4 种。 1. 使用 new …

python matplotlib模块教程_Python中的Matplotlib模块入门教程

1 关于 Matplotlib 模块Matplotlib 是一个由 John Hunter 等开发的&#xff0c;用以绘制二维图形的 Python 模块。它利用了 Python 下的数值计算模块 Numeric 及 Numarray&#xff0c;克隆了许多 Matlab 中的函数&#xff0c; 用以帮助用户轻松地获得高质量的二维图形。Matplot…

人脸离线识别模块_人脸消费机离线刷脸如何实现?

随着越来越多刷卡刷脸一卡通的设备出现。大家在享受一卡通的便利的同时。也在考虑人脸消费机的基本功能和安全属性&#xff0c;人脸消费机&#xff0c;是指人脸在消费访客管理方面的相关。在人脸刷脸进行消费的时候是一下几个阶段1.人脸特征提取首先得先让人脸消费机看到你的脸…

Java匿名对象

创建对象的格式如下&#xff1a; 类名称 对象名 new 类名称();每次 new 都相当于开辟了一个新的对象&#xff0c;并开辟了一个新的物理内存空间。如果一个对象只需要使用唯一的一次&#xff0c;就可以使用匿名对象&#xff0c;匿名对象还可以作为实际参数传递。 匿名对象就是…

mysql中的钱null_MySQL数据库中null的知识点总结

在mysql数据库中&#xff0c;null是一个经常出现的情况&#xff0c;关于mysql中的null&#xff0c;有哪些注意事项呢&#xff1f;下面简单总结归纳下&#xff0c;后续会不断补充。1. is null首先判断数据库中某一列的值是否为null&#xff0c;不能用等于来判断&#xff0c;必须…

Java访问对象的属性和行为

每个对象都有自己的属性和行为&#xff0c;这些属性和行为在类中体现为成员变量和成员方法&#xff0c;其中成员变量对应对象的属性&#xff0c;成员方法对应对象的行为。 在 Java 中&#xff0c;要引用对象的属性和行为&#xff0c;需要使用点&#xff08;.&#xff09;操作符…

junit版本_Junit-jupiter-api 和 junit-jupiter-engine 的区别是什么

我们都知道 JUnit 是用于进行单元测试的。但是 Junit 5 和 Junit 4 的区别比较大。 很多时候你可能会遇到 Junit 引擎配置错误导致测试无法进行。junit-jupiter-api JUnit 5 Jupiter API 的测试&#xff0c;你需要使用这个 API 来写测试和进行扩展。junit-jupiter-engine JUnit…