java解析excel生成sql文件
序:需求是往数据库批量造测试数据、数量较多。用代码直接生成sql文件会省很多事。
注、引包:poi.jar系列引入即可。
package demo;import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map;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;public class excelToSql {public static void executeInfo() throws IOException{String filePath = "D:/FavoriteVideo/testExcel.xlsx"; //指定本地的数据目录String slqPath = "D:/FavoriteVideo/testSql.sql"; //指定生成文件目录try {InputStream in = new FileInputStream(filePath);Workbook wb = new XSSFWorkbook(in);in.close();String sql = "";Sheet sheetAt = wb.getSheetAt(0);int lastRowNum = sheetAt.getLastRowNum();Map map = new HashMap();sql = "";List<ExcelBean> excelBean = getExcelBean(sql, sheetAt, lastRowNum);Map<String,String> map1 =new HashMap<>();for(ExcelBean bean :excelBean){map1.put(bean.getTestName(),bean.getUser_());}Iterator<Map.Entry<String, String>> it = map1.entrySet().iterator();while (it.hasNext()) {Map.Entry<String, String> entry = it.next();System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());sql += String.format("INSERT IGNORE INTO `test_table_info` (`testName`, `updateTime`, `createTime`, `user_`) VALUES ('%s', now(), now(), '%s');\n", entry.getKey(), entry.getValue());}System.out.println(map1);System.out.println(map1.size());File file = new File(slqPath);if(!file.exists()){file.createNewFile();}byte[] bytes = sql.getBytes();OutputStream os = new FileOutputStream(slqPath);os.write(bytes);os.flush();os.close();System.out.println("sheets");} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}private static List<ExcelBean> getExcelBean(String sql, Sheet sheetAt, int lastRowNum) {List<ExcelBean> list = new ArrayList<>();for (int rowNum=0; rowNum <= lastRowNum; rowNum++){ExcelBean bean = new ExcelBean(); //创建一个单独Bean、System.out.println("rowNum = "+rowNum);Row row = sheetAt.getRow(rowNum);String testName = "";String user_ = "";if (row != null){Cell cell = row.getCell(0);if (cell != null) {testName = cell.getStringCellValue();bean.setTestName(testName);}cell = row.getCell(1);if (cell != null) {user_ = cell.getStringCellValue();bean.setUser_(user_);}/*** 更多列在这里补充*/}list.add(bean);}return list;}public static void main(String args[]) throws IOException{long startTime = System.currentTimeMillis();executeInfo();long endTime = System.currentTimeMillis();System.out.println("耗时为m:" + (endTime - startTime)/1000);}}
excel测试数据:
生成.sql文件:
生成的.sql直接拿入数据库执行即可。(oracle库记得更改日期字段哦..)
end_
转载于:https://www.cnblogs.com/haohao111/p/7523101.html
java解析excel生成sql文件相关推荐
- python生成表格文件_python 读取excel文件生成sql文件实例详解
python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以 ...
- easyexcel生成excel_阿里JAVA解析Excel工具easyexcel
java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有 ...
- java解析Excel文件
下文介绍java解析Excel文件的方案 前置准备 1.第三方jar包或者Maven配置 org.apache.poi的jar包 Maven配置如下 <groupId>org.apache ...
- java生成sql文件
java生成sql文件 场景 场景 用于清理数据库数据,生成sql语句脚本,方便DBA执行 @RequestMapping("/cleanQuestion")@ResponseBo ...
- java解析Excel文件的方法
java解析Excel文件的方法 介绍 1.1 pom依赖 1.2 将数据流转化为可解析的Workbook类型文件 1.3 解析 1.4 Controller层接收前端传递的Excel文件(前端使用E ...
- 使用EasyExcel导入导出Excel报表-JAVA解析Excel工具
一.EasyExcel概述 Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内 ...
- Java解析excel工具easyexcel 助你快速简单避免OOM
原文链接:http://www.itsleuth.cn/post/javatool-001-easyexcel/ Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在 ...
- java解析excel的方法_Java解析Excel内容的方法
本文实例讲述了Java解析Excel内容的方法.分享给大家供大家参考.具体实现方法如下: import java.io.File; import java.io.FileInputStream; im ...
- JAVA解析Excel工具EasyExcel
我是傲骄鹿先生,沉淀.学习.分享.成长. 如果你觉得文章内容还可以的话,希望不吝您的「一键三连」,文章里面有不足的地方希望各位在评论区补充疑惑.见解以及面试中遇到的奇葩问法 目录 64M内存20秒读取 ...
最新文章
- birt脚本for循环_Shell脚本编程2 for循环/while循环
- 中的多行卡片如何居中_编程中如何让图片垂直居中?两种方案分享给大家
- 解决mysql不能远程登入的问题
- AUTOSAR从入门到精通100讲(四十六)-CANoe工具使用-实现CAN通道的收、发、录、回放报文
- 硬盘计算机类比推理,判断推理类比推理:储存:光盘:硬盘
A:晾晒:绳索:衣架
B.吃...
- CSDN专訪:大数据时代下的商业存储
- 安装rocketmq-console插件
- lisp抛物线插值_抛物线插值法
- stm32采集脉冲信号_外部脉冲实现ADC采样的问题 STM32f103VE
- python基础知识——异常
- 以太坊分叉的缘由:著名的The DAO事件
- DSS的Windows版本如何安装呢?
- linux libxml2 rpm安装,Linux系统libxml2安装过程
- 『软件工程10』结构化系统分析:数据流图和字典案例分析
- 微信小程序考勤签到管理系统+后台管理系统
- Android探索之旅(第二十九篇)手把手教你如何简单创建快应用
- Jenkins Bitbucket Vue 部署
- html表格筛选,js实现表格筛选功能
- 大学生bootstrap框架网页作业成品 web前端大作业期末源码 航海王html+jquery+bootstrap响应式网页制作模板 学生海贼王动漫bootstrap框架网站作品
- 佳博80系列打印机驱动开发DLL支持C#的过程