当前位置: 首页 > news >正文

教育网站制作多少费用wordpress后台慢插件

教育网站制作多少费用,wordpress后台慢插件,新媒体营销专业学什么,安徽建设工程信息网监理查询前言 最近遇到了一些导表的问题。原本的导表工具导不了使用名称管理器的Excel。 首先我们有两个Sheet。B1用的是名称管理器中的AAA, 而B2用的对应的公式。 第二个sheet#xff0c;名为Test2: 这是一段简化的代码#xff1a; public class Main {public static void mai…前言 最近遇到了一些导表的问题。原本的导表工具导不了使用名称管理器的Excel。 首先我们有两个Sheet。B1用的是名称管理器中的AAA, 而B2用的对应的公式。 第二个sheet名为Test2: 这是一段简化的代码 public class Main {public static void main(String[] args) {var inputFile new File(src/main/java/poi/test.xlsx);var dataFormatter new DataFormatter();try (var wb new XSSFWorkbook(new FileInputStream(inputFile))) {wb.setForceFormulaRecalculation(true);var sheet wb.getSheet(Test);var formulaEvaluator wb.getCreationHelper().createFormulaEvaluator();for (int i sheet.getFirstRowNum(); i sheet.getLastRowNum(); i) {var row sheet.getRow(i);var list new ArrayListString();for (var cell : row) {list.add(format(dataFormatter, formulaEvaluator, cell));}System.out.println(String.join(, , list));}} catch (IOException e) {throw new RuntimeException(e);}}public static String format(DataFormatter dataFormatter, XSSFFormulaEvaluator formulaEvaluator, Cell cell) {return dataFormatter.formatCellValue(cell, formulaEvaluator);} }控制台的输出为 1, #N/A 2, b这意味着无法解析这个命名统计后的值。 为啥公式可以执行。但是从名称管理器拿不到是否可以通过拿名称对应的公式来计算出相应的结果 通过修改formatter: public static String format(DataFormatter dataFormatter, XSSFFormulaEvaluator formulaEvaluator, Cell cell) {if (cell.getCellType() CellType.FORMULA) {System.out.println(Formula: cell.getCellFormula());System.out.println(RichString: cell.getRichStringCellValue().getString());System.out.println(Cache result type: cell.getCachedFormulaResultType());}return dataFormatter.formatCellValue(cell, formulaEvaluator);}我们可以得到输出 Formula: AAA RichString: a Cache result type: STRING 1, #N/A --------------------------------------- Formula: VLOOKUP(A2,Test2!$A$1:$B$5,2) RichString: b Cache result type: STRING 2, b ---------------------------------------这么看来RichString可以拿到我们想要的值。 但是当我把Sheet2中对应的值改为数字 得到的一个保存的结果 Formula: AAA Exception in thread main java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC formula cellat org.apache.poi.xssf.usermodel.XSSFCell.typeMismatch(XSSFCell.java:946)at org.apache.poi.xssf.usermodel.XSSFCell.getRichStringCellValue(XSSFCell.java:330)at org.apache.poi.xssf.usermodel.XSSFCell.getRichStringCellValue(XSSFCell.java:77)at poi.Main.format(Main.java:43)at poi.Main.main(Main.java:29)这里我想拿到一个可以区分是Name还是Formula的属性。但是我看了下从cell的方法好像没办法拿到。 一个解决方案 package poi;import org.apache.poi.ss.SpreadsheetVersion; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.DataFormatter; import org.apache.poi.ss.util.AreaReference; import org.apache.poi.ss.util.CellReference; import org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator; import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList;public class Main {public static void main(String[] args) {var inputFile new File(src/main/java/poi/test.xlsx);var dataFormatter new DataFormatter();try (var wb new XSSFWorkbook(new FileInputStream(inputFile))) {wb.setForceFormulaRecalculation(true);var sheet wb.getSheet(Test);var formulaEvaluator wb.getCreationHelper().createFormulaEvaluator();for (int i sheet.getFirstRowNum(); i sheet.getLastRowNum(); i) {var row sheet.getRow(i);var list new ArrayListString();for (var cell : row) {list.add(format(dataFormatter, formulaEvaluator, cell));}System.out.println(String.join(, , list));System.out.println(---------------------------------------);}} catch (IOException e) {throw new RuntimeException(e);}}public static String format(DataFormatter dataFormatter, XSSFFormulaEvaluator formulaEvaluator, Cell cell) {if (cell.getCellType() CellType.FORMULA) {System.out.println(Formula: cell.getCellFormula());System.out.println(Cache result type: cell.getCachedFormulaResultType());if (cell.getCachedFormulaResultType() CellType.STRING) {return cell.getRichStringCellValue().getString();} else {return String.valueOf(cell.getNumericCellValue());}}return dataFormatter.formatCellValue(cell, formulaEvaluator);} }执行后得到结果 Formula: AAA Cache result type: NUMERIC 1, 1.0 --------------------------------------- Formula: VLOOKUP(A2,Test2!$A$1:$B$5,2) Cache result type: NUMERIC 2, 2.0 ---------------------------------------这样结果勉强可以用但是感觉上这段代码是有BUG的但是对POI的了解不是太透本文相当于抛砖引玉如果有懂的可以探讨下。
http://www.zqtcl.cn/news/141284/

相关文章:

  • 在线网站建设培训门户类网站图片
  • 佛山乐从网站建设自媒体平台收益排行榜
  • 网站建设项目需求陕西陕煤建设集团有限公司网站
  • 鼓楼网站开发永州做网站tuantaogou
  • ui网站建设站评价文山建设5G网站
  • 深圳 网站设计公司企业网络搭建教程
  • 做网站策划遇到的问题全网营销型网站模版
  • 网站建设费属于无形资产吗广州高铁新建站在哪里
  • 网站建设平台报价深圳市房产交易中心官网
  • 注册网站网前端素材网
  • 快3网站制作 优帮云贾汪区建设局网站
  • 南昌市有帮做网站的吗网站联动
  • 英文网站建设服务合同模板网站详情页艺术字怎么做的
  • discuz仿搜索网站做网站开发用哪种语言好
  • 企业网站服务网络设备维护是做什么的
  • 罗湖网站公司网站服务器建设合同
  • 公司网站设计注意什么免费名字设计成图案
  • python3 网站建设济南网站建设(选 聚搜网络)
  • 建网站在哪里做广告上海 网站撤销备案
  • 个人可以备案几个网站做网站和网站页面设计
  • 拉丝机东莞网站建设下载安装百度一下
  • 河北建设厅官方网站山西手动网站建设推广
  • 连云港网站建设开发网络营销顾问服务
  • 怎么做网站免有什么网站可以免费建站
  • 安全的营销型网站建设深圳网站建设哪家
  • wordpress能开发商城网站吗seo软件
  • 广东网站建设制作价格低网页升级访问中每天正常更新中
  • 北京市门头沟有没有做网站的小水库运行管理培训教材久久建筑网
  • 免费手机网站app软文推广发稿
  • 安徽网站制作公司建设银行校招网站入口