精华内容
下载资源
问答
  • 1、POI读取Excel时判断单元格数据类型: CELL_TYPE_NUMERIC 数值型 0 CELL_TYPE_STRING 字符串型 1 CELL_TYPE_FORMULA 公式型 2 CELL_TYPE_BLANK 空值 3 CELL_TYPE_BOOLEAN 布尔型 4 CELL_TYPE_ERROR 错误 5 2、在...

    1、POI读取Excel时判断单元格数据类型:

    CELL_TYPE_NUMERIC 数值型 0
    CELL_TYPE_STRING 字符串型 1
    CELL_TYPE_FORMULA 公式型 2
    CELL_TYPE_BLANK 空值 3
    CELL_TYPE_BOOLEAN 布尔型 4
    CELL_TYPE_ERROR 错误 5

    2、在jeecg中获取Excel中的值:

    源码是这样的:jeecgframework/poi/excel/imports/CellValueServer.java

    private Object getCellValue(String xclass, Cell cell, ExcelImportEntity entity)
      {
        if (cell == null) {
          return "";
        }
        Object result = null;
    
        if (("class java.util.Date".equals(xclass)) || ("class java.sql.Time".equals(xclass))) {
          if (0 == cell.getCellType())
          {
            result = cell.getDateCellValue();
          } else {
            cell.setCellType(1);
            result = getDateData(entity, cell.getStringCellValue());
          }
          if ("class java.sql.Time".equals(xclass))
            result = new Time(((Date)result).getTime());
        }
        else if (0 == cell.getCellType()) {
          result = Double.valueof(cell.getNumericCellValue());
        } else if (4 == cell.getCellType()) {
          result = Boolean.valueOf(cell.getBooleanCellValue());
        } else {
          result = cell.getStringCellValue();
        }
        return result;
      }

    3、在使用中发现,Excel中的整数在导入后,悄悄的加了小数点


    为了去掉不该出现的小数点,修改源码中的格式转换部分,发现源码中直接使用的0和4数值去判断,不太了解什么意思,所以查了单元格数据类型附在文章的开始部分,0为数值型,在进行格式转化是,转为Double型了,所以悄悄的加上了小数点,这里为满足自己的业务需要,直接强转为int型,因为我的数值本身就是int型,修改后为

    private Object getCellValue(String xclass, Cell cell, ExcelImportEntity entity)
      {
        if (cell == null) {
          return "";
        }
        Object result = null;
    
        if (("class java.util.Date".equals(xclass)) || ("class java.sql.Time".equals(xclass))) {
          if (0 == cell.getCellType())
          {
            result = cell.getDateCellValue();
          } else {
            cell.setCellType(1);
            result = getDateData(entity, cell.getStringCellValue());
          }
          if ("class java.sql.Time".equals(xclass))
            result = new Time(((Date)result).getTime());
        }
        else if (XSSFCell.CELL_TYPE_NUMERIC == cell.getCellType()) {
          result = (int)cell.getNumericCellValue();
        } else if (XSSFCell.CELL_TYPE_BOOLEAN == cell.getCellType()) {
          result = Boolean.valueOf(cell.getBooleanCellValue());
        } else {
          result = cell.getStringCellValue();
        }
        return result;
      }



    展开全文
  • public Object getCellValue(HSSFCell cell) { Object value = ""; if (cell != null) { switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_FORMULA: break; case HSSFCell.CELL_TYPE_NUMERI
    public Object getCellValue(HSSFCell cell) {
    		Object value = "";
    		if (cell != null) {
    			switch (cell.getCellType()) {
    			case HSSFCell.CELL_TYPE_FORMULA:
    				break;
    			case HSSFCell.CELL_TYPE_NUMERIC:
    				cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
    				DecimalFormat format = new DecimalFormat("#");
    				value =format.format(cell.getNumericCellValue());
    				break;
    			case HSSFCell.CELL_TYPE_STRING:
    				value = cell.getStringCellValue().trim();
    				break;
    			default:
    				value = null;
    				break;
    			}
    
    		}
    		return value;
    
    	}
    

    展开全文
  • 请问,在Excel里面,如何判断单元格数据类型,比如是数字、字符,公式? 谢谢了 如果有C#相关代码,不胜感谢。
  • VBA中,单元格属性有NumberFormat可以获取单元格格式,比如: G/通式格式→常规 @→文本 yyyy/m/d→日期 问题: G/通式格式,无法知道值是整数还是浮点数, yyyy/m/d如果换一种日期格式就对不上了。 ...

    VBA中,单元格属性有NumberFormat可以获取单元格格式,比如:

    • G/通式格式→常规
    • @→文本
    • yyyy/m/d→日期

    问题:

    1. G/通式格式,无法知道值是整数还是浮点数,
    2. yyyy/m/d如果换一种日期格式就对不上了。

    所以cell.Value(12)就派上用场了,是XML格式的单元格更详细的信息。

    <xml xmlns:x="urn:schemas-microsoft-com:office:excel"
     xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
     xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
     xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
     <x:PivotCache>
      <x:CacheIndex>1</x:CacheIndex>
      <s:Schema id="RowsetSchema">
       <s:ElementType name="row" content="eltOnly">
        <s:attribute type="Col1"/>
        <s:extends type="rs:rowbase"/>
       </s:ElementType>
       <s:AttributeType name="Col1" rs:name="字段1">
        <s:datatype dt:type="dateTime"/>
       </s:AttributeType>
      </s:Schema>
      <rs:data>
       <z:row Col1="2019-04-07T00:00:00"/>
      </rs:data>
     </x:PivotCache>
    </xml>
    

    dateTime就是相应的数据类型所在位置,获取方法(AutoHotkey)

    ;返回为字符串,int|float|255|dateTime|boolean
    ;255表示字符串,boolean表示空单元格,其他还没遇到,待完善
    valueType(cell) { xml := cell.Value(12) oXML := ComObjCreate("MSXML2.DOMDocument.6.0") oXML.loadXML(xml) ;oNS := ComObjCreate("***") ;oNS.AddNamespace("x", "urn:schemas-microsoft-com:office:excel") ;oXML.SelectSingleNode("xml/x:PivotCache", oNS)
      ;不懂XML,也没搞定SelectSingleNode的命名空间,以下的方法比较Low,希望有人指点。(纯处理字符串,oDatetype其实也没什么必要) oDatatype :
    = oXML.childNodes[0].childNodes[0].childNodes[1].childNodes[1].childNodes[0] strType := oDatatype.xml ;除了xml不知道还有什么属性更好用 Return RegExReplace(SubStr(strType,1,StrLen(strType)-3), '.*"') }

     

    转载于:https://www.cnblogs.com/hyaray/p/10705780.html

    展开全文
  • 今天跟大家分享一下Excel如何快速判断单元格数据是否为数字 1.如下图表格中含有部分数据,现在我们想要快速判断这些数据是否为数字。 2.首先我们点击E2单元格 3.然后点击【公式向导】(Excel...

    今天跟大家分享一下Excel如何快速判断单元格数据是否为数字

    1.如下图表格中含有部分数据,现在我们想要快速判断这些数据是否为数字。

    2.首先我们点击E2单元格

    3.然后点击【公式向导】(Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细解说。)

    4.点击【条件判断】,选择【判断是否数字类型】

    5.接着在公式存放到选项内录入F2

    6.最后点击【确定】即可完成

    7.完成效果如下图所示

    展开全文
  • POI Excel 单元格内容类型判断并取值

    万次阅读 2017-01-04 15:15:07
    做Excel导入功能时,读取Excel单元格内容需要区分类型switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: // 数字 //如果为时间格式的内容 if (HSSFDateUtil.isCellDateFormatted(cell)) {
  • poi导入excel判断单元格类型及转换

    万次阅读 2012-06-25 15:59:01
    private String getCellValue(HSSFCell cell) { String cellValue = ""; DecimalFormat df = new DecimalFormat("#"); switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_STRING: ...
  • HSSFCell 读单元格数据类型

    千次阅读 2017-09-07 14:42:33
    String cellValue = ""; DecimalFormat df = new DecimalFormat("#"); switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_STRING: cellValue = cell.getRichStri
  • DataGridView有六种列类型,当选择了列类型后对应到该列下的单元格会显示为对应的类型,不过这个类型是设计时指定的,当程序运行时要改变单元格类型还是比较麻烦的。此文来聊一下如何在运行时改变单元格类型。 ...
  • //单元格点击事件 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { //获取某个单元格的值的数据类型名称 MessageBox.Show(dataGridView1[e.Colum...
  • default: value = "未知类型"; break; } POI4.x之后版本(网上版本) 网上搜到的是这种:本人测试后发现这种也不行, ```java switch (cell.getCellType()) { case STRING: value = cell.getRichStringCellValue()....
  • 单元格中的日期类型数据读出为浮点型数据,如将2018/6/13读成46713.0;将单元格中的布尔类型数据读出成浮点型数据,如将1读成1.0。正确地读取数据是进行数据分析的基础,所以提供了一种解决此类问题的思路。在介绍...
  • 使用poi读取excel文件单元格的数据,若是单元格数据是数值格式,poi获取单元格的数值值: row.getCell(j).getNumericCellValue() 返回的的结果是double类型 若是单元格是int类型,那获取出来的数值也还是...
  • AceyOffice教程--如何判断单元格的内容 Excel中单元格可以设置值(包括boolean,Number,DateTime,String等)、设置公式和富文本,如何通过代码来获取单元格包含的具体内容,能很简单方便控制单元格。 Acey.ExcelX组件...
  • 2.1 单元格类型数据读取 2.1.1 基本类型 在实际工作中,我们处理的Excel数据都不止限于字符型数据,更多的是数字、日期、甚至公式等。 下面是单元格类型说明: 类型   CELL_TYPE_BLANK 空值...
  • UiPath判断单元格为空

    2021-08-07 18:41:50
    Dim xlPackage As ExcelPackage = New ExcelPackage(New IO.FileInfo("C:\Users\jtang20\Desktop\test.xlsx"))Dim sheet As ExcelWorksheet = xlPackage.Workbook.Worksheets("Sheet1") If sheet.cells("H9").value...
  • POI Excel 单元格内容类型判断并取值 以前用 cell.getCachedFormulaResultType() 得到 type 升级到4后获取不到了 换为:cell.getCellType()
  • 当我删除当前单元格内容时, 如果针对字符型字段OK,但是针对数值型字段出错提示如下: 从字符串“”到类型“Double”的转换无效 我试着改为: ``` If e.RowIndex >= 0 And IIf(IsDBNull(.CurrentCell.Value), 0,...
  • 2.1 单元格类型数据读取 2.1.1 基本类型 在实际工作中,我们处理的Excel数据都不止限于字符型数据,更多的是数字、日期、甚至公式等。 下面是单元格类型说明: 类型   CELL_TYPE_B...
  • 导出Excel 设置单元格类型 for (.......) { Boolean isNum = false;//data是否为数值型 Boolean isInteger=false;//data是否为整数 Boolean isPercent=false;//data是否为百分数 if ...
  • Excel读取获取数据必须判断数据类型

    千次阅读 2018-01-03 10:24:13
    如之前读取Excel的各种方法,在获取单元格数据的时候要注意,不要直接ToString...在获取数据之前判断数据类型,并根据相应的数据类型去获取,才不会出问题。 private static string GetCellValue(ICell cell) { ob
  • NPOI获取有公式的单元格数据

    千次阅读 2019-03-04 10:58:17
    如果直接取值取得就是公式,如下图 判断一下类型就可以了
  • POI 单元格类型CellType

    2019-06-19 08:37:00
    1.单元格类型 单元格的内容决定了单元格的...日期数据对应的单元格类型是CellType.NUMERIC,默认以浮点型数显示,显示为日期格式需要设置单元格样式DataFormat 字符型单元格内容也可以为富文本RichTextString,可...
  • poi 取excel单元格内容时,需要判断单元格类型,才能正确取出 以下内容非原创,原文链接http://blog.sina.com.cn/s/blog_4b5bc01101015iuq.html ate String getCellValue(HSSFCell ce ... 随机推荐 django 项目的...
  • //获取单元格类型值,返回字符串类型   private   static   String getCellValueByCell(Cell cell) {   //判断是否为null或空串   if   (cell== null   || cell.toString().trim().equals( "" )) { ...
  • // 判断是日期时间类型还是数值类型 if (DateUtil.isCellDateFormatted(cell)) { short format = cell.getCellStyle().getDataFormat(); SimpleDateFormat sdf = null; /* 所有日期格式都可以通过getDataFormat...
  • 使用TableModel的addTableModelListener方法可以监听单元格数据的变更,在其事件处理函,数tableChanged中,可以通过e.getColumn(),e.getFirstRow(),e.getLastRow(),e.getType()来获取变更发生的位置和变更的类型...
  • 今天要做一个dev gridcongtrol输入单元格内容有效性的检测,此处以不允许为空、该列的值不允许重复为例。...1、首先将要验证的列设置为RepositoryItemCheckEdit类型,或者别的控件类型(其余控件类型未测试),以

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,409
精华内容 10,163
关键字:

判断单元格的数据类型