1. 工作中经常会用的Excel数据读取用来页面展示和数据存储
  2. 以下为Springboot部分代码
package com.example.excel.controller;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 org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.io.*;
import java.util.HashMap;
import java.util.Map;@RestController
@RequestMapping("/excel")
public class ExcelToDBController {@PostMapping("/xxx")public Map xxx(@RequestParam String filePath,@RequestParam String newFileName) {Map map = new HashMap();InputStream is = null;try {is = new FileInputStream((filePath + "/"+newFileName));Workbook wb = null;if ((filePath + newFileName).endsWith(".xlsx")) {wb = new XSSFWorkbook(is);} else if ((filePath + newFileName).endsWith(".xls") || (filePath + newFileName).endsWith(".et")) {wb = new HSSFWorkbook(is);}int numberOfSheets = wb.getNumberOfSheets();File file = new File("F:\\xxxx.txt");for (int i=0;i<numberOfSheets;i++){//System.out.println(wb.getSheetAt(i).getSheetName());Sheet sheet = wb.getSheetAt(i);int rowSize = sheet.getLastRowNum() + 1;for (int j = 2; j < rowSize; j++) {Row row = sheet.getRow(j);int cellSize = row.getLastCellNum();for (int m=0;m<cellSize;m++){if (m!=0&&m!=5){Cell cell = row.getCell(m);String sex = "";String payMent = "";if (m==1||m==2||m==3||m==4){sex = "1";//男性if (m==1)payMent="Y10";if (m==2)payMent="Y15";if (m==3)payMent="Y20";if (m==4)payMent="Y30";}else if (m==6||m==7||m==8||m==9){sex = "0";//女性if (m==6)payMent="Y10";if (m==7)payMent="Y15";if (m==8)payMent="Y20";if (m==9)payMent="Y30";}String aiClass = String.valueOf(i);if (!"".equals(cell.toString())){String sql = "INSERT INTO table_name(productCode,itemCode,itemDesc,age,sex,period,payMent,aiClass,rate,amount) " +"VALUES('xxx','xxx','xxx','"+(j-2)+"','"+sex+"','xxx','"+payMent+"','"+aiClass+"',"+cell.toString()+",'xxx');";System.out.println(sql);/*if (j%1000==0) {sql = sql + "\r\n" + "commit;";}*/toFile(file,sql);}}}}}wb.close();is.close();} catch (Exception ex) {ex.printStackTrace();}return map;}@PostMapping("/XXXX")public Map XXXX(@RequestParam String filePath,@RequestParam String newFileName) {Map map = new HashMap();InputStream is = null;try {is = new FileInputStream((filePath + "/"+newFileName));Workbook wb = null;if ((filePath + newFileName).endsWith(".xlsx")) {wb = new XSSFWorkbook(is);} else if ((filePath + newFileName).endsWith(".xls") || (filePath + newFileName).endsWith(".et")) {wb = new HSSFWorkbook(is);}int numberOfSheets = wb.getNumberOfSheets();//int numberOfSheets = 1;for (int i=0;i<numberOfSheets;i++){File file = new File("F:\\xxxxxx"+i+".txt");//System.out.println(wb.getSheetAt(i).getSheetName());Sheet sheet = wb.getSheetAt(i);int rowSize = sheet.getLastRowNum() + 1;for (int j = 1; j < rowSize; j++) {Row row = sheet.getRow(j);String sex = row.getCell(2).toString();if ("男性".equals(sex)){sex = "1";}else if ("女性".equals(sex)){sex = "0";}String age = row.getCell(3).toString();age = age.substring(0,age.length()-2);String payMent = "Y"+row.getCell(0).toString().substring(0,2);String gpIndex = payMent+"/xxx"+"/"+sex+"/"+age;int plyYear = new Double(row.getCell(4).getNumericCellValue()).intValue();String sql = "INSERT INTO `table_name` (`riskCode`, `grade`,`gpIndex`,`payment`,`period`,`sex`,`age`,`plyYear`,`gpValue`) " +"VALUES('xxx','"+String.valueOf(i)+"','"+gpIndex+"','"+payMent+"','xxxx','"+sex+"', '"+age+"',"+plyYear+",'"+row.getCell(5)+"');";if (j%1000==0) {sql = sql + "\r\n" + "commit;";}toFile(file,sql);System.out.println(sql);}}wb.close();is.close();} catch (Exception ex) {ex.printStackTrace();}return map;}public void toFile(File file,String data){BufferedWriter out = null;try {out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true)));out.write(data+"\r\n");} catch (Exception e) {e.printStackTrace();} finally {try {out.close();} catch (IOException e) {e.printStackTrace();}}}
}
        <!--java poi--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.15</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.15</version></dependency>

以上为直接输出sql到文件中,可以改成使用数据源直接存库

poi读取Excel内容相关推荐

  1. POI读取Excel内容格式化

    在用POI读取Excel内容时,经常会遇到数据格式化的问题. 比如:数字12365会变为12365.0;字符串数字123也会变为123.0,甚至会被变为科学计数法.另外日期格式化也是一个头疼的问题.其 ...

  2. poi读取Excel内容数据

    public static void main(String[] args) { try{//获取文件输入流FileInputStream fileIn = new FileInputStream(& ...

  3. poi读取excel导入mysql_poi读取xlsx表格内容并插入到mysql中,OutOfMemoryError

    看代码: CSVWriter:package com.util; import java.io.Closeable; import java.io.IOException; import java.i ...

  4. java利用poi读取excel_java利用POI 读取EXCEL

    /* * 使用POI读取EXCEL文件 */ import java.io.File; import java.io.FileInputStream; import java.util.ArrayLi ...

  5. Java开发小技巧(六):使用Apache POI读取Excel

    前言 在数据仓库中,ETL最基础的步骤就是从数据源抽取所需的数据,这里所说的数据源并非仅仅是指数据库,还包括excel.csv.xml等各种类型的数据接口文件,而这些文件中的数据不一定是结构化存储的, ...

  6. java poi 读取excel 编码_Java使用POI 读取和写入Excel指南

    做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求:网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃,这里基于最新的Apache POI 4.0. ...

  7. EasyExcel 轻松灵活读取Excel内容

    写在前面 Java 后端程序员应该会遇到读取 Excel 信息到 DB 等相关需求,脑海中可能突然间想起 Apache POI 这个技术解决方案,但是当 Excel 的数据量非常大的时候,你也许发现, ...

  8. Java教程:使用POI读取excel文档(根据BV1bJ411G7Aw整理)

    Java教程:使用POI读取excel文档(根据BV1bJ411G7Aw整理) 最近公司需要我做一个导出Excel表格的功能,为此来学习一下POI,在这里记录一下学习笔记.B站直接搜BV1bJ411G ...

  9. java读取Excel内容添加到list集合里面去

    java读取Excel内容添加到list集合里面去 package com.changan.contract.newsign.utils;import com.changan.contract.xqh ...

最新文章

  1. NK3C框架(MyBatis、Durid)连接SQL Server
  2. python集合属性方法运算_Python基础__字典、集合、运算符
  3. centos7是php多少,centos7怎么安装php
  4. 【题目解析】1015 Reversible Primes (20 分)_27行代码AC
  5. python实现语音播放_python通过wxPython打开一个音频文件并播放的方法
  6. 语音信号处理基础(五)——语音分帧与加窗
  7. html textarea粘贴事件,javascript在textarea中捕获粘贴事件
  8. 看了这个你也可以做SYSLINUX启动光盘
  9. 二项式展开 matlab,二项式造句_造句大全
  10. 有关“A New Adversarial Embedding Method for Enhancing Image Steganography“的理解
  11. Linux修改只读文件(Read-Only)的方法
  12. java架构师培训-成为java架构师的标准是什么
  13. Adams隐式4阶方法解常微分方程,fortran实现
  14. 14. vue的插槽
  15. matlab初值微分方程,常微分方程初值问题的MATLAB解法
  16. 【JS代码提高--003】:JavaScript 生成间于最小值和最大值之间的随机数
  17. boost:lexical_cast
  18. 第三方邮件、短信服务
  19. iproute2;高级路由;ip_route,ip_rule;
  20. 892A Greed

热门文章

  1. ESP32 + Python守护家庭健康、自己动手做个甲醛浓度检测设备
  2. RocketMq的刷盘方式
  3. rknn3399pro 2小时入门指南(三)在PC上搭建RKNN模拟环境、 模型转换代码、RK3399 pro使用
  4. 堆排序详细图解(通俗易懂)
  5. 超级网管员——网络设备
  6. DataX离线数据同步
  7. frida辅助分析xx牛登录算法frida辅助分析xx牛登录算法
  8. FileInputFormat类中split切分算法和host选择算法介绍
  9. 浏览器功能哪家强?手机浏览器功能大赏
  10. 兄弟连第一届非官方感恩父母活动