今天领导给安排了一个临时工作,让我将一个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中数据如图所示:

四:运行结果

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

  1. php中怎么连接数据库中的表,php 连接 excel表格数据库数据-php中如何将execl的数据导入到数据库中...

    php中如何将execl的数据导入到数据库中 php导出大量数据的Excel: PHP从数据库分多次读取100万行记录,和分多次将100万行写入文本文件都没问题 Excel可以支持100万行记录,Ex ...

  2. php使用excel表格数据库数据,php使用excel表格数据库数据库-php中如何将execl的数据导入到数据库中...

    php中如何将execl的数据导入到数据库中 1.使用PHP Excel Parser Pro软件,但是这件为收费软件: 2.可将EXCEL表保CSV,然后通过 phpmyadmin 或者SQLyog ...

  3. 查询oracle数据库的表格数据类型,excel表格中如何查询数据库数据类型-我想把excel表格中的数据导入oracle数据库中,想在......

    在excel表里,什么是:字段.记录.数据类型.多工... declare @t table(id numeric(18,2)) insert into @t SELECT   col1 FROM   ...

  4. vb6将excel数据导入mysql_VB6.0如何实现将excel数据导入mssql数据库中

    我在VB6.0中的模块中加入了连接sql的语句,连接已经没有问题了,做登录系统和将sql的数据导入到excel中也没有问题,但就是不知如何实现将excel数据导入mssql数据库中,批量的导入,请.. ...

  5. excel文件数据导入mysql数据库中_将excel里面的数据导入mysql数据库中

    展开全部 条件:PC端已经安装Navicat工具,并636f70793231313335323631343130323136353331333363386161且已经成功连接至数据库. 1.点击鼠标右 ...

  6. sqlserver怎么将excel表的数据导入到数据库中

    在数据库初始阶段,我们有些数据在EXCEL中做好之后,需要将EXCEL对应列名(导入后对应数据库表的字段名),对应sheet(改名为导入数据库之后的表名)导入指定数据库, 相当于导入一张表的整个数据. ...

  7. Excel表格数据导入mysql数据库中

    1.将excel表格中的数据复制到txt文件中 (如果有中文汉字注意:将txt文件更改成utf-8格式) 2.将.txt文件放入D盘 3.创建数据库和表(注意:数据库中的属性一定要和excel表格中的 ...

  8. 安卓 sqlite数据存入mysql_在Android上简单导出和导入SQLite数据库

    这是一种将数据库导出到名为备份文件夹的文件夹的简单方法,您可以根据需要对其进行命名,以及从同一文件夹导入数据库的简单方法public class ExportImportDB extends Acti ...

  9. mysql无法打开excel_关于Navicat将Excel数据导入到MySQL中出现无法打开文件错误

    一.起因:关于Navicat将Excel中的数据导入到数据库中,出现无法打开文件问题 最近想通过navicat ,将excel文件(xlsx格式)导入到数据库中,按照导入向导一步步操作,出现无法打开文 ...

最新文章

  1. RHEL5 install
  2. 浅谈C中的指针和数组(一)
  3. 做俯卧撑的10个技巧
  4. matlab simulink 视频,使用 MATLAB 和 Simulink 让控制系统的开发更轻松
  5. C语言结构体指针的使用方法
  6. cat查看tomcat日志 linux_方法篇:tomcat日志切割和定期删除
  7. spark java 逻辑回归_逻辑回归分类技术分享,使用Java和Spark区分垃圾邮件
  8. toj 4604 搞笑版费马大定理
  9. bash获得相对路径的文件信息
  10. 安卓发布应用、更新的细节
  11. linux查看消息队列的状态,linux – 如何知道某个时间点在消息队列中收到的消息数...
  12. cnc加工中心保养表_CNC加工中心常用指令以及保养项目
  13. KETTLE-JDBC连接池参数介绍以及使用
  14. WTS 2.1.18124.1 彻底抛弃了 15063(Win 10 创意者更新)
  15. 手机显示仅限紧急呼叫 无服务 以及无信号的解决教程
  16. 当游戏直播遇上网课教育:虎牙、斗鱼的跨界梦圆的了吗?
  17. c语言调用子函数程序,函数的调用
  18. 关于嵌入式Qt5配置环境变量导致鼠标显示与隐藏
  19. Gamma详解
  20. 记录华清远见济南分公司嵌入式软件开发培训

热门文章

  1. win7如何设置还原点
  2. Java SSM篇2——框架的基本认识
  3. apache目录遍历漏洞利用_Apache漏洞—多后缀名解析、目录遍历和(CVE-2017-15715)
  4. mysql 排他,mysql 共享锁 排他锁 防插入锁
  5. linux 安装libcurl4-gnutls-dev,curl / curl.h,libcurl,libcurl4-openssl-dev,libcurl4-nss-dev库之间的区别?...
  6. poi 不自动计算 设置单元格公式_Java POI:如何读取Excel单元格的值而不是计算公式?...
  7. oracle创建多个游标,Oracle——游标的创建和使用
  8. 数据结构 排序 java_Java数据结构之排序---选择排序
  9. 英雄联盟与人生奋斗的类比讨论
  10. 从sqlite 迁移 mysql_将 Ghost 从 SQLite3 数据库迁移到 MySQL 数据库