问题描述

使用jxls,poi导出excel的公式中出现@符号,或者公式不生效(和office版本有关系)

模板excel公式 =MIN(IF(A11:T12>0,A11:T12))/A21
生成excel公式 =MIN(IF(@A11:T12>0,A11:T12))/A21

import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbookFactory;
import org.jxls.common.Context;
import org.jxls.util.JxlsHelper;InputStream templateStream = new FileInputStream("xxx.xlsx");
Context context = new Context();ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
JxlsHelper.getInstance().processTemplate(templateStream, byteArrayOutputStream, context);ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
byteArrayOutputStream.close();
XSSFWorkbook workbook = new XSSFWorkbookFactory().create(byteArrayInputStream);

原因分析:

MIN(IF(A11:T12>0,A11:T12))/A21 属于数组公式,在excel中需要用Ctrl+Shift+Enter组合键设置才能生效。然而XSSFWorkbookFactory的create中并没有特殊处理数组公式。


解决方案:

使用XSSFSheet的setArrayFormula方法重新设置数组公式

XSSFSheet sheet = workbook.getSheetAt(0);
sheet.setArrayFormula("MIN(IF(A11:T12>0,A11:T12))/A21", new CellRangeAddress(22, 23, 0, 19));

使用jxls,poi导出excel的公式中出现@符号,或者公式不生效相关推荐

  1. java 使用poi导出excel单元格中的内容自动换行

    HSSFCellStyle cellStyle = wb.createCellStyle();cellStyle.setWrapText(true); //文本内容自动换行

  2. POI导出Excel时下拉列表值超过255的问题(String literals in formulas can‘t be bigger than 255 characters ASCII)

    一.简单的描述问题:(记录问题) 首先说一下我们导出的这个Excel表,我们是通过POI来生成一个Excel表,然后在Excel表中添加了下拉列表,然后将数据库中取出的数据放到下拉列表中,这样每次导出 ...

  3. Java利用注解实现配置动态公式并结合POI导出Excel

    利用注解实现动态配置公式并结合POI导出Excel 实现思想 创建导出对象 创建使用注解类 创建封装导出对象属性类 创建测试类 创建ExcelUtil类 实现效果 实现思想 实施顾问提出导出Excel ...

  4. springboot中使用poi导出excel文件(亲测实现了第一个功能)

    1.POI简介 Jakarta POI 是一套用于访问微软格式文档的Java API. 组件HWPF用于操作Word的; 组件HSSF用于操作Excel格式文件. 2.常用组件 HSSFWorkboo ...

  5. java中poi导出Excel表格(前台流文件接收)

    java中poi导出Excel表格,前端以流的方式接收,而非直接生成文件再下载,解决多台服务器部署后,路径地址不统一导致的下载问题. 生成Excel示例图: 2.代码说明 ① 在上次的基础上增加了底部 ...

  6. JAVA POI导出EXCEL设置自定义样式(线框加粗,合并指定行,合计求和,冻结行)

    前面部分是当时查询的记录: 实现Excel文件单元格合并.冻结和文件导出 Workbook wb = new HSSFWorkbook();Sheet sheet = wb.createSheet(& ...

  7. POI导出Excel (满满的干货啊)

    已经实现的POI导出Excel 步骤一:导入依赖 <dependency><groupId>org.apache.poi</groupId><artifact ...

  8. java字符串换行符替换成段落标记_导出EXCEL换行符br为什么没有起到作用/poi导出excel内存溢出...

    导出EXCEL换行符br为什么没有起到作用 br是html中的换行符,在excel中并不起效,excel中换行是用alt enter强制插入的,或者用vba代码强制换行的. 导出EXCEL换行符为什么 ...

  9. cpu java poi 导出_java基于poi导出excel透视表代码实例

    这篇文章主要介绍了java基于poi导出excel透视表代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从前,我是一个前端程序猿,怀着对打通 ...

最新文章

  1. PyTorch常用代码段整理合集,建议收藏!
  2. 手机画面尺寸多少满屏_手机屏幕科普
  3. Python之路(第三十一篇) 网络编程:简单的tcp套接字通信、粘包现象
  4. 重启oracle服务顺序,oracle 10g]命令行启动ORACLE服务及顺序
  5. CentOS 安装MySQL(rpm)提示错误Header V3 DSA/SHA1 Signature
  6. Facebook在欧洲推出网络极端内容与仇恨言论打压行动
  7. 华为手机投屏电脑_华为手机如何投屏到电脑?这很实用
  8. 爱奇艺NLP:BiLSTM_CRF的关键词自动抽取
  9. 【转】C# 3.0 和VS2008 bug 收集
  10. Atitit 2017年第68界机器视觉图像处理学术大会会议记要attilax总结自建学院自颁学位理论
  11. Chrome translate plugins install 谷歌翻译插件安装
  12. 登录爬取拉勾网2.0 Python selenium
  13. Netgear R6220刷潘多拉盒子后的WIFI配置,20HZ频宽下载速度达9M
  14. 【计算机毕业设计】基于微信小程序的大众医疗挂号就诊服务系统
  15. 如何在新版的万能地图下载器上作标注
  16. thinkpad卡在logo界面_联想笔记本开不了机卡住logo界面如何解决
  17. 计算机辅助教育的期末考试,计算机辅助教育.pptx
  18. 手撕RPC系列(2)—客户端基于stub动态代理的RPC
  19. 方言――水(上) K}[V mxzw
  20. 手机话费充值API事例_话费接口DEMO

热门文章

  1. D - 人见人爱A+B(有关进制问题)
  2. Eclipse 如何调整java和xml文件字体大小
  3. mysql查询表列名
  4. SaaSBase:什么是Thoughts?
  5. svmtrain已被删除,请改用fitcsvm
  6. Linux下进程间通信--共享内存:最快的进程间通信方式
  7. 什么是Python的 “内存管理机制”
  8. wps 怎么设置头部搜索
  9. AHST智能分选——“让世界更有序”
  10. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令