1. 表格有公式,但是导入的时候获取不到,都获取到0?

解决: 自己写一个处理类,不要用他自己的util,借助FormulaEvaluator 获取公式计算的值

package com.changcheng.excel.utils;import com.changcheng.excel.pojo.ExcelMessage;
import com.changcheng.excel.pojo.ExcelMessage2;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.CellValue;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.util.ArrayList;
import java.util.List;import static org.apache.poi.ss.usermodel.CellType.*;/*** Created on 2021/8/23** @Author ZFH*/
public class ExcelReadUtil {private static FormulaEvaluator evaluator;public static List<ExcelMessage> getList(XSSFWorkbook workbook, Integer sheetNumber,Integer beginNumber) {evaluator = workbook.getCreationHelper().createFormulaEvaluator();XSSFSheet sheet = workbook.getSheetAt(sheetNumber);int lastRowNum = sheet.getLastRowNum();List<ExcelMessage> list = new ArrayList<>();for (int i = beginNumber; i < lastRowNum + 1; i++) {ExcelMessage excelMessage = new ExcelMessage();XSSFRow row = sheet.getRow(i);XSSFCell cell0 = row.getCell(0);excelMessage.setAddress(cell0.getStringCellValue());XSSFCell cell1 = row.getCell(1);excelMessage.setType(cell1.getStringCellValue());XSSFCell cell2 = row.getCell(2);excelMessage.setNumber(cell2.getStringCellValue());XSSFCell cell3 = row.getCell(3);evaluator.evaluateFormulaCell(cell3);CellValue cellValue = evaluator.evaluate(cell3);Integer celldata = new Double(cellValue.getNumberValue()).intValue();excelMessage.setIntType(String.valueOf(celldata));XSSFCell cell4 = row.getCell(4);evaluator.evaluateFormulaCell(cell4);CellValue cellValue2 = evaluator.evaluate(cell4);excelMessage.setSmallType(String.valueOf(cellValue2.getStringValue()));XSSFCell cell5 = row.getCell(5);evaluator.evaluateFormulaCell(cell5);CellValue cellValue3 = evaluator.evaluate(cell5);Double celldata3 = cellValue3.getNumberValue();excelMessage.setStart(String.valueOf(celldata3));XSSFCell cell6 = row.getCell(6);excelMessage.setBefore(cell6.getStringCellValue());XSSFCell cell7 = row.getCell(7);excelMessage.setMiddle1(cell7.getStringCellValue());XSSFCell cell8 = row.getCell(8);excelMessage.setMiddle2(cell8.getStringCellValue());XSSFCell cell9 = row.getCell(9);excelMessage.setLast(cell9.getStringCellValue());XSSFCell cell10 = row.getCell(10);evaluator.evaluateFormulaCell(cell10);CellValue cellValue10 = evaluator.evaluate(cell10);String celldata10= cellValue10.getStringValue();excelMessage.setAssemble(celldata10);XSSFCell cell11 = row.getCell(11);evaluator.evaluateFormulaCell(cell11);CellValue cellValue11 = evaluator.evaluate(cell11);String celldata11= cellValue11.getStringValue();excelMessage.setResult(celldata11);list.add(excelMessage);}return list;}public static List<ExcelMessage2> getList2(XSSFWorkbook workbook, Integer sheetNumber, Integer beginNumber) {evaluator = workbook.getCreationHelper().createFormulaEvaluator();XSSFSheet sheet = workbook.getSheetAt(sheetNumber);int lastRowNum = sheet.getLastRowNum();List<ExcelMessage2> list = new ArrayList<>();for (int i = beginNumber; i < lastRowNum + 1; i++) {ExcelMessage2 excelMessage = new ExcelMessage2();XSSFRow row = sheet.getRow(i);XSSFCell cell2 = row.getCell(2);excelMessage.setAddress(cell2.getStringCellValue());XSSFCell cell3 = row.getCell(3);excelMessage.setType(cell3.getStringCellValue());list.add(excelMessage);}return list;}
}

java处理excel遇到的问题(easyPOI)相关推荐

  1. java在Excel中添加png图片作为页眉(已解决)

    1.背景 Excel在打印的时候需要附带水印打出,水印需要在下载Excel文件时就设置好 需要在打印的时候打印出水印,使用添加背景添加的水印在打印的时候不会出现,只有设置页眉,并将页眉设置为一长与打印 ...

  2. word录入表单数据 java 导入系统,java导入excel | 怎么把excel中的数据批量导入到word中的表格中...

    用javascript怎么实现把excel中的数据批量导入到数据库表中 这个js不能直接实现吧 我们程序用到 先读取excel内容转换成数组 然后放到页面上 再提交表单 储存 MySql如何批量添加数 ...

  3. 经典文章之java 操纵Excel[转]

    转自http://www.cnblogs.com/sunzhenxing19860608/archive/2010/12/27/1918128.html jxl是一个韩国人写的java操作excel的 ...

  4. java连接Excel数据库读取,写入,操纵Excel表格

    java连接Excel数据库读取,写入,操纵Excel表格 (2009-11-15 14:21:03) 转载 标签: java excel 连接 杂谈 分类:技术文档 java连接MicroSoft ...

  5. 利用Spring-Boot解析Excel、用Java分析Excel、告别手动输入用程序读取Excel

    利用Spring-Boot解析Excel.用Java分析Excel.告别手动输入用程序读取Excel 一.资源 java读取Excel文件 二.修改 (一)中的代码中的 import service. ...

  6. 超详细的java生成excel文件并下载

    在网上随手一搜,可以搜到很多java生成excel文件相关的博客,但每个都有不同,核心点说清楚了,但具体运用的时候,相信大家或多或少都没法一次直接运用,这样每次去找并且运用的时候很费时间,所以这也是我 ...

  7. java excel读取操作,Java 操作 Excel (读取Excel2003 2007,Poi兑现)

    Java 操作 Excel (读取Excel2003 2007,Poi实现) 一. Apache POI 简介( http://poi.apache.org/) 使用Java程序读写Microsoft ...

  8. 在Java生成的html页面加水印,Java在Excel中添加水印的实现(单一水印、平铺水印)...

    在Excel中没有直接添加水印的功能,但依旧可以通过一定方式来实现类似水印效果.本文通过Java程序代码介绍具体实现方法.可添加单一水印效果,即水印是以单个文本字样来呈现:也可添加多个平铺水印效果,即 ...

  9. java导出excel设置行高列宽_使用POI生成Excel文件,可以自动调整excel列宽

    //autoSizeColumn()方法自动调整excel列宽 importjava.io.FileOutputStream; importorg.apache.poi.hssf.usermodel. ...

  10. 【Apache POI】Java写入Excel文件

    上篇文章学习了Java读取Excel文件,这篇文章接着来简单总结Java写入Excel,话不多说,看代码: import java.io.File; import java.io.FileInputS ...

最新文章

  1. Ubuntu共享WiFi(AP)给Android方法
  2. python制作购物网站_Python实现的购物车功能示例
  3. 【评论】为什么我的工资最低!
  4. 华为辞职门事件——再谈工作问题
  5. Ubuntu 装机必备设置与软件安装
  6. sql查询条件为空的另类写法o( ̄▽ ̄)d
  7. Eclipse 中 去掉控制台最大行数限制
  8. 是清单 Dog List的子类 Animal ? 为什么Java泛型不是隐式多态的?
  9. php笔记:抽奖概率算法
  10. Android广播机制(2)
  11. 使用adb命令启动app
  12. 安装SqlServer 2017 时出现“Polybase要求安装Oracle JRE 7 更新51(64位)或更高版本规则失效”报错的解决办法
  13. QTcpSocket网络通讯多客户端功能
  14. HashMap为什么要使用红黑树
  15. docker之win安装gitlab
  16. 2021-2027全球与中国GPU服务器市场现状及未来发展趋势
  17. 学号java_java ---- 定义一个表示学生的类 包括域“学号”、“班号”、“姓名”、“年龄”;...
  18. PTA-- 快速排序(25)
  19. 【FPGA教程案例78】通信案例4——基于FPGA的RLS自适应滤波算法实现
  20. 谷歌chrome安卓版_Chrome+Android能摩擦出怎样的火花?Fyde OS深入体验笔记

热门文章

  1. win10或win7系统不小心误碰笔记本触摸板,打乱桌面图标排列顺序
  2. kali ubantu 中输入密码以解锁密钥环的解决
  3. 最全面的行人重识别数据集汇总
  4. 玩家心理角度分析《英雄无敌三》
  5. C++Primer11.2.3节练习
  6. a4proxy.exe
  7. 35岁前要上的33堂理财课
  8. 2016经典搞笑语录:老师我错了,您当场把它砸了吧。
  9. hpm1005能扫描不能打印_浅谈如何选购人像扫描仪
  10. 用Python买卖策略:基于北向资金的择时买入卖出策略复现