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中数据如图所示:
四:运行结果
excel文件存入mysql_解析excel文件并将数据导入到数据库中相关推荐
- php中怎么连接数据库中的表,php 连接 excel表格数据库数据-php中如何将execl的数据导入到数据库中...
php中如何将execl的数据导入到数据库中 php导出大量数据的Excel: PHP从数据库分多次读取100万行记录,和分多次将100万行写入文本文件都没问题 Excel可以支持100万行记录,Ex ...
- php使用excel表格数据库数据,php使用excel表格数据库数据库-php中如何将execl的数据导入到数据库中...
php中如何将execl的数据导入到数据库中 1.使用PHP Excel Parser Pro软件,但是这件为收费软件: 2.可将EXCEL表保CSV,然后通过 phpmyadmin 或者SQLyog ...
- 查询oracle数据库的表格数据类型,excel表格中如何查询数据库数据类型-我想把excel表格中的数据导入oracle数据库中,想在......
在excel表里,什么是:字段.记录.数据类型.多工... declare @t table(id numeric(18,2)) insert into @t SELECT col1 FROM ...
- vb6将excel数据导入mysql_VB6.0如何实现将excel数据导入mssql数据库中
我在VB6.0中的模块中加入了连接sql的语句,连接已经没有问题了,做登录系统和将sql的数据导入到excel中也没有问题,但就是不知如何实现将excel数据导入mssql数据库中,批量的导入,请.. ...
- excel文件数据导入mysql数据库中_将excel里面的数据导入mysql数据库中
展开全部 条件:PC端已经安装Navicat工具,并636f70793231313335323631343130323136353331333363386161且已经成功连接至数据库. 1.点击鼠标右 ...
- sqlserver怎么将excel表的数据导入到数据库中
在数据库初始阶段,我们有些数据在EXCEL中做好之后,需要将EXCEL对应列名(导入后对应数据库表的字段名),对应sheet(改名为导入数据库之后的表名)导入指定数据库, 相当于导入一张表的整个数据. ...
- Excel表格数据导入mysql数据库中
1.将excel表格中的数据复制到txt文件中 (如果有中文汉字注意:将txt文件更改成utf-8格式) 2.将.txt文件放入D盘 3.创建数据库和表(注意:数据库中的属性一定要和excel表格中的 ...
- 安卓 sqlite数据存入mysql_在Android上简单导出和导入SQLite数据库
这是一种将数据库导出到名为备份文件夹的文件夹的简单方法,您可以根据需要对其进行命名,以及从同一文件夹导入数据库的简单方法public class ExportImportDB extends Acti ...
- mysql无法打开excel_关于Navicat将Excel数据导入到MySQL中出现无法打开文件错误
一.起因:关于Navicat将Excel中的数据导入到数据库中,出现无法打开文件问题 最近想通过navicat ,将excel文件(xlsx格式)导入到数据库中,按照导入向导一步步操作,出现无法打开文 ...
最新文章
- RHEL5 install
- 浅谈C中的指针和数组(一)
- 做俯卧撑的10个技巧
- matlab simulink 视频,使用 MATLAB 和 Simulink 让控制系统的开发更轻松
- C语言结构体指针的使用方法
- cat查看tomcat日志 linux_方法篇:tomcat日志切割和定期删除
- spark java 逻辑回归_逻辑回归分类技术分享,使用Java和Spark区分垃圾邮件
- toj 4604 搞笑版费马大定理
- bash获得相对路径的文件信息
- 安卓发布应用、更新的细节
- linux查看消息队列的状态,linux – 如何知道某个时间点在消息队列中收到的消息数...
- cnc加工中心保养表_CNC加工中心常用指令以及保养项目
- KETTLE-JDBC连接池参数介绍以及使用
- WTS 2.1.18124.1 彻底抛弃了 15063(Win 10 创意者更新)
- 手机显示仅限紧急呼叫 无服务 以及无信号的解决教程
- 当游戏直播遇上网课教育:虎牙、斗鱼的跨界梦圆的了吗?
- c语言调用子函数程序,函数的调用
- 关于嵌入式Qt5配置环境变量导致鼠标显示与隐藏
- Gamma详解
- 记录华清远见济南分公司嵌入式软件开发培训
热门文章
- win7如何设置还原点
- Java SSM篇2——框架的基本认识
- apache目录遍历漏洞利用_Apache漏洞—多后缀名解析、目录遍历和(CVE-2017-15715)
- mysql 排他,mysql 共享锁 排他锁 防插入锁
- linux 安装libcurl4-gnutls-dev,curl / curl.h,libcurl,libcurl4-openssl-dev,libcurl4-nss-dev库之间的区别?...
- poi 不自动计算 设置单元格公式_Java POI:如何读取Excel单元格的值而不是计算公式?...
- oracle创建多个游标,Oracle——游标的创建和使用
- 数据结构 排序 java_Java数据结构之排序---选择排序
- 英雄联盟与人生奋斗的类比讨论
- 从sqlite 迁移 mysql_将 Ghost 从 SQLite3 数据库迁移到 MySQL 数据库