POI 单元格类型CellType

1. 单元格类型

单元格的内容决定了单元格的类型,POI中定义的7种单元格类型:
这里写图片描述
这里写图片描述

  1. 日期数据对应的单元格类型是CellType.NUMERIC,默认以浮点型数显示,显示为日期格式需要设置单元格样式DataFormat
  2. 字符型单元格内容也可以为富文本RichTextString,可以对文本多部分设置字体Font

2. 错误单元格

Excel中存在错误单元格,在POI中是怎么表现的呢

org.apache.poi.ss.usermodel.FormulaError1
package org.apache.poi.ss.usermodel;  import java.util.Map;  import org.apache.poi.util.Internal;  import java.util.HashMap;  /** * Enumerates error values in SpreadsheetML formula calculations. *  * See also OOO's excelfileformat.pdf (2.5.6) */  
public enum FormulaError {  @Internal  _NO_ERROR(-1, "(no error)"),  /** * Intended to indicate when two areas are required to intersect, but do not. * <p>Example: * In the case of SUM(B1 C1), the space between B1 and C1 is treated as the binary * intersection operator, when a comma was intended. end example] * </p> */  NULL(0x00, "#NULL!"),  /** * Intended to indicate when any number, including zero, is divided by zero. * Note: However, any error code divided by zero results in that error code. */  DIV0(0x07, "#DIV/0!"),  /** * Intended to indicate when an incompatible type argument is passed to a function, or * an incompatible type operand is used with an operator. * <p>Example: * In the case of a function argument, text was expected, but a number was provided * </p> */  VALUE(0x0F, "#VALUE!"),  /** * Intended to indicate when a cell reference is invalid. * <p>Example: * If a formula contains a reference to a cell, and then the row or column containing that cell is deleted, * a #REF! error results. If a worksheet does not support 20,001 columns, * OFFSET(A1,0,20000) will result in a #REF! error. * </p> */  REF(0x17, "#REF!"),  /** * Intended to indicate when what looks like a name is used, but no such name has been defined. * <p>Example: * XYZ/3, where XYZ is not a defined name. Total is & A10, * where neither Total nor is is a defined name. Presumably, "Total is " & A10 * was intended. SUM(A1C10), where the range A1:C10 was intended. * </p> */  NAME(0x1D, "#NAME?"),  /** * Intended to indicate when an argument to a function has a compatible type, but has a * value that is outside the domain over which that function is defined. (This is known as * a domain error.) * <p>Example: * Certain calls to ASIN, ATANH, FACT, and SQRT might result in domain errors. * </p> * Intended to indicate that the result of a function cannot be represented in a value of * the specified type, typically due to extreme magnitude. (This is known as a range * error.) * <p>Example: FACT(1000) might result in a range error. </p> */  NUM(0x24, "#NUM!"),  /** * Intended to indicate when a designated value is not available. * <p>Example: * Some functions, such as SUMX2MY2, perform a series of operations on corresponding * elements in two arrays. If those arrays do not have the same number of elements, then * for some elements in the longer array, there are no corresponding elements in the * shorter one; that is, one or more values in the shorter array are not available. * </p> * This error value can be produced by calling the function NA */  NA(0x2A, "#N/A"),  // These are POI-specific error codes  // It is desirable to make these (arbitrary) strings look clearly different from any other  // value expression that might appear in a formula.  In addition these error strings should  // look unlike the standard Excel errors.  Hence tilde ('~') was used.  /** * POI specific code to indicate that there is a circular reference *  in the formula */  CIRCULAR_REF(0xFFFFFFC4, "~CIRCULAR~REF~"),  /** * POI specific code to indicate that the funcition required is *  not implemented in POI */  FUNCTION_NOT_IMPLEMENTED(0xFFFFFFE2, "~FUNCTION~NOT~IMPLEMENTED~");  private final byte type;  private final int longType;  private final String repr;  private FormulaError(int type, String repr) {  this.type = (byte)type;  this.longType = type;  this.repr = repr;  }  /** * @return numeric code of the error */  public byte getCode() {  return type;  }  /** * @return long (internal) numeric code of the error */  public int getLongCode() {  return longType;  }  /** * @return string representation of the error */  public String getString() {  return repr;  }  private static final Map<String, FormulaError> smap = new HashMap<String, FormulaError>();  private static final Map<Byte, FormulaError> bmap = new HashMap<Byte, FormulaError>();  private static final Map<Integer, FormulaError> imap = new HashMap<Integer, FormulaError>();  static{  for (FormulaError error : values()) {  bmap.put(error.getCode(), error);  imap.put(error.getLongCode(), error);  smap.put(error.getString(), error);  }  }  public static final boolean isValidCode(int errorCode) {  for (FormulaError error : values()) {  if (error.getCode() == errorCode) return true;  if (error.getLongCode() == errorCode) return true;  }  return false;  }  public static FormulaError forInt(byte type) throws IllegalArgumentException {  FormulaError err = bmap.get(type);  if(err == null) throw new IllegalArgumentException("Unknown error type: " + type);  return err;  }  public static FormulaError forInt(int type) throws IllegalArgumentException {  FormulaError err = imap.get(type);  if(err == null) err = bmap.get((byte)type);  if(err == null) throw new IllegalArgumentException("Unknown error type: " + type);  return err;  }  public static FormulaError forString(String code) throws IllegalArgumentException {  FormulaError err = smap.get(code);  if(err == null) throw new IllegalArgumentException("Unknown error code: " + code);  return err;  }  
} 

3. 实例

package hssf.sheet.cell;import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Calendar;
import java.util.Date;import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;public class ExportDataCell {public static void main(String[] args) throws Exception {File file = new File("C:\\Users\\Administrator\\Desktop\\test.xls");if (file.exists()) {file.delete();}BufferedOutputStream out = null;try {out = new BufferedOutputStream(new FileOutputStream("C:\\Users\\Administrator\\Desktop\\test.xls"));exportExcel(out);} finally {out.close();}}private static void exportExcel(BufferedOutputStream out) throws IOException {Workbook wb = new HSSFWorkbook();//Workbook wb = new XSSFWorkbook();Sheet sheet = wb.createSheet("各种类型单元格");sheet.createRow(0).createCell(0).setCellValue(1.1);sheet.createRow(1).createCell(0).setCellValue(new Date());sheet.createRow(2).createCell(0).setCellValue(Calendar.getInstance());sheet.createRow(3).createCell(0).setCellValue("字符串");sheet.createRow(4).createCell(0).setCellValue(true);sheet.createRow(5).createCell(0).setCellType(CellType.ERROR);wb.write(out);}
}

这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555373.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

extjs 渲染之前的方法_Unity通用渲染管线(URP)系列(十一)——后处理(Bloom)...

200篇教程总入口&#xff0c;欢迎收藏&#xff1a;放牛的星星&#xff1a;[教程汇总持续更新]Unity从入门到入坟——收藏这一篇就够了​zhuanlan.zhihu.com本文重点内容&#xff1a;1、创建简单的post-FX栈2、修改渲染后的图像3、需要的时候完成后处理的呈现4、制作Bloom的效果…

服务器需要指定dns吗,Windows Server2012 安装配置DNS服务器方法详解

在云服务器 Windows Server2012 上安装配置DNS服务器方法&#xff0c;安装与配置非常简单&#xff0c;在这里写个完整教程方便大家查询一、安装DNS服务器1.打开服务器管理器&#xff0c;点击添加角色和功能2.一直下一步&#xff0c;选择基于角色或基于功能的安装3.选择目标服务…

SVN提交时出现locked错误解决办法

问题&#xff1a;在SVN中执行 commit 操作时&#xff0c;在更新过程中&#xff0c;中断过&#xff0c;或者因为其他原因导致SVN 出现 locked 异常。 解决方法&#xff1a; 回到SVN文件夹的根目录。如图操作&#xff1a; 点击ok就好了。

windows7系统做文件服务器拒绝,Win7提示qq服务器拒绝了您发送离线文件

腾讯QQ功能强大&#xff0c;语音、视频、传输文件等&#xff0c;很多人都喜欢通过qq给朋友或同事发送文件&#xff0c;即使人不在也可以接收离线文件&#xff0c;随时都可以接收。但是有win7用户发送离线文件时提示“服务器拒绝了您发送离线文件”&#xff0c;该如何解决此问题…

.net bitmap rgb数据_Python商务与经济统计学-数据描述

案例2-1、3-1 Pelican 商店本案例之中主要涉及到Pandas和pyecharts的一些功能&#xff0c;比如利用pandas进行数据筛选&#xff0c;百分比频数统计&#xff0c;将数据进行分组&#xff0c;分组统计&#xff0c;相关性分析等。另外还涉及到了pyecharts的饼图&#xff0c;直方图&…

qq服务器只保留7天文件吗,qq离线文件服务器上的离线文件能保留几天(一般7天)?...

相信大家都用过qq离线文件功能来跟好友发送离线文件。因为当对方不在线的时候也是可以使用发送离线文件功能。那么在我们发送的qq离线文件服务器上的离线文件能保留几天&#xff1f;因为我们发送的qq离线文件会自动保存在离线文件。它是有一定的时间期限。如果没有期限的话&…

失败的人生图片_人到中年,做事失败了,很可能是遇到了以下五种情况

人至中年&#xff0c;也到了迈入成功大门的时刻&#xff0c;但并非每个人都能在中年获得成功&#xff0c;相反&#xff0c;有不少人却在中年的时候失败。人至中年面临失败&#xff0c;其实原因有很多&#xff0c;但大多数情况下&#xff0c;可能是遇到了以下五种情况。究竟有哪…

Idea的debug断点调试

关于Idea的debug模式下线程断点的总结&#xff1a; 断点介绍&#xff1a; 如图所示&#xff0c;断点可以为所有断点和线程断点&#xff0c;每种断点还可以设置条件&#xff0c;条件满足时才会进入该断点。 1.当设置为All的时候 点击下发的下拉框&#xff0c;可以看到此时拦截…

ajax 传字符串到后台,JSON.stringify()将JSON对象转换为字符串通过Ajax传入到后台处理...

搜索热词最近在做一个小小的功能模块&#xff0c;前台有很多的数据需要传入到后台&#xff0c;前台页面设计如下&#xff1a;看起来不是很清楚&#xff0c;总之表单中的数据都要提交到后台进行处理&#xff0c;然后插入到数据库&#xff0c;而且是一起提交到后台的&#xff0c;…

lan pci 联想开机_微软承认KB4568831导致部分联想ThinkPad笔记本崩溃和蓝屏

在上周末悄然发布的支持文档中&#xff0c;微软承认 KB4568831 以及之后发布的累积更新导致部分联想 ThinkPad 笔记本出现了系统崩溃和蓝屏问题。其中关键错误包括“SYSTEM_THREAD_EXCEPTION_NOT_HANDLED” 崩溃&#xff0c;0xc0000005访问被拒绝&#xff0c;以及进程 ldiagio.…

dropdownlist ajax联动,asp.net省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例...

本文主要列举了省市三级联动的DropDownListAjax的三种框架(aspnet/Jquery/ExtJs)示例。前段时间需要作一个的Web前端应用&#xff0c;需要用多个框架&#xff0c;一个典型的应用场景是省市三级联动&#xff0c;基于此应用&#xff0c;特将三种主要的ajax框架略作整理&#xff0…

苹果笔记本电脑亮度无法调节_苹果MacBook AirM1评测:M1芯片给您不一样的体验

哈喽&#xff0c;您好&#xff01;我是原呵呵&#xff0c;点点关注吧&#xff0c;更多精彩内容等着您M1 MacBook Air是一款神奇的笔记本电脑。不是因为它看起来特别新。这是一个奇迹&#xff0c;虽然它从外观上跟以前看起来没啥区别。它与以前运行相同的操作系统&#xff0c;并…

POI读取Excel文件时,row.getCell(0).getStringCellValue()报错:数字转换异常

在进行关键字驱动测试框架的搭建时&#xff0c;我们可能会遇到当单元格里的内容是手机号或者密码等数字时使用row.getCell(0).getStringCellValue()这个方法是会报错的&#xff0c;因为这牵扯到方法过时的原因&#xff1a; 所以我们可以使用以下的方法解决这个问题&#xff1a…

wps合并所有sheet页_表格高级筛选、表格合并,让表格处理事半功倍

今天给大家介绍WPS最受欢迎的2个表格功能&#xff0c;表格合并和表格高级筛选。这都是能够切实让工作事半功倍的功能&#xff0c;一定要掌握哦&#xff01;一、表格合并当我们有多个表格的内容需要合并到一个表格中&#xff0c;很多人会采取复制粘贴的方式。表格数量少时可能影…

Java代理设计模式(Proxy)的具体实现:静态代理和动态代理

Java代理设计模式(Proxy)的具体实现&#xff1a;静态代理和动态代理 实现方式一&#xff1a;静态代理静态代理方式的优点静态代理方式的缺点Java动态代理实现方式一&#xff1a;InvocationHandlerJava动态代理实现方式二&#xff1a;CGLIB用CGLIB实现Java动态代理的局限性 面…

golang 大数据平台_大数据平台是什么?有哪些功能?如何搭建大数据平台?

大数据平台是为了满足企业对于数据的各种要求而产生的。大数据平台&#xff1a;是指以处理海量数据存储、计算及不间断流数据实时计算等场景为主的一套基础设施。典型的包括Hadoop系列、Spark、Storm、Flink以及Flume/Kafka等集群。既可以采用开源平台&#xff0c;也可以采用华…

Spring 官方证实:框架爆大漏洞,JDK 9 及以上版本均受影响

继 Log4j 2 之后&#xff0c;听闻 Java 再次遭到漏洞攻击&#xff0c;这一次&#xff0c;似乎情况也更为严重&#xff0c;因为受到影响的是 Java 平台的开源全栈应用程序框架和控制反转容器实现——Spring 家族&#xff0c;而且网传漏洞还不止一个。 一直以来&#xff0c;Spri…

有关家居产品设计的外国专著_为啥外国的二手家具被称为vintage,中国就叫破烂?差在哪儿了?...

如果你细细观察国外的家居市场&#xff0c;发现跳蚤市场特别流行于各个国家。无论是美国、英国、法国&#xff0c;一些普通民众需要购买家具会优先考虑去跳蚤市场看看。所谓的跳蚤市场就是我们国内俗称的二手家具市场&#xff0c;在国人眼中就如同破烂一般存在。而在国外人心中…

mysql挂载数据卷_记一次生产数据库数据文件进行分区转移

概述由于之前同事没有对磁盘分区做规划&#xff0c;可以看到数据和系统是在同个分区的&#xff0c;没有单独规划一个数据分区给数据库&#xff0c;还有个分区是640G没有用上。下面简单介绍一下mysql数据库数据文件的转移过程。1、新建数据分区篇幅需要&#xff0c;以下从简。。…

java计算一个多边形的重心_2D凸多边形碰撞检测算法(二) - GJK(上)

2D凸多边形碰撞检测算法&#xff08;二&#xff09; - GJK&#xff08;上&#xff09;原理在 Narrow Phase 精细碰撞检测中&#xff0c;除了 SAT &#xff0c;另外一个就是 GJK&#xff08;Gilbert–Johnson–Keerthi&#xff09;算法。它足够高效&#xff0c;且很容易了解它是…