因为要做一个项目,开始研究Excel种的数据类型。发现偌大的一个cnblogs竟然没人写这个,自己研究以后记录下来。

在我们通常的认识中,Excel中的数据类型有这么几种

1、常规;2、数值;3、货币;4、会计专用;5、日期;6、时间;

7、百分比;8、分数;9、科学技术;10、文本;11、特殊;12、自定义

同样在一个格子里边输入一个  6

如果什么都不设置,它是个【右对齐】的【常规】6

如果设置成文本,它是个【左对齐】的【文本】6

如果设置成货币,它是个【右对齐】的【货币】¥6:00

而你双击这个¥6.00,进入编辑状态,它显示的还就是个数字 6,编辑完了再自动展示成¥7.00

这其中一定有着某个原因。

学过“面向对象“的朋友应该已经敏锐地感觉出来了,对于这个单元格有个属性,专门记录用户对这个单元格的设置。

我尝试寻找,做了个测试用的EXCEL,每一列分别设置了不同的数据类型。

然后将这个excel文件读进C#程序中,

调试时可以发现这个属性

这是对于【1、常规格式的读取】,后来将剩下的东西有也都整理了出来

1、常规:"G/通用格式"
2、数值:"0.00_"
3、货币:"¥#,##0.00;¥-#,##0.00"
4、会计专用:"_ ¥* #,##0.00_ ;_ ¥* -#,##0.00_ ;_ ¥* \"-\"??_ ;_ @_ "
5、日期:"yyyy/m/d"
6、时间:"[$-F400]h:mm:ss AM/PM"
7、百分比:"0.00%"
8、分数:"# ?/?"
9、科学技术:"0.00E+00"
10、文本:"@"
11、特殊:"000000"
12、自定义:"G/通用格式"

这是个啥?

我在设置的时候,都没有进行详细的设置,数值都是默认值,但我不能保证用户在写这个Excel表的时候不对它进行详细设置啊!

那么,这是个啥?-------------是正则表达式!

我在每种类型中设置两个值,再把其中的每个选项试一试,

就能搞清楚这种类型的格式中的正则表达式怎么写!

但是,我很懒,

决定采用特征值的办法,正则就不写了,万一写的不周全呢。

那么,特征值是啥样的

1、常规:"G/通用格式"      --------------     =="G/通用格式"
2、数值:"0.00_"      -------------- endWith("_")
3、货币:"¥#,##0.00;¥-#,##0.00"     --------------     startWith("¥")
4、会计专用:"_ ¥* #,##0.00_ ;_ ¥* -#,##0.00_ ;_ ¥* \"-\"??_ ;_ @_ "      -------------startWith(“_ ¥”)
5、日期:"yyyy/m/d"-----------不知道怎么弄
6、时间:"[$-F400]h:mm:ss AM/PM" --------------   endWith("AM/PM")
7、百分比:"0.00%"    --------------   endWith("%")
8、分数:"# ?/?"   --------------   StartWith("#")
9、科学记数:"0.00E+00"      --------------    contains("G/通用格式")
10、文本:"@"    --------------    ==“@”
11、特殊:"000000"      -------------- ==“000000”
12、自定义:"G/通用格式"     --------------     =="G/通用格式"

无奈之下,我把日期格式的子选项都选了一遍,做了这么个表

这个条件麻烦了  ( endWith(“@”)|| endWith(“yyyy”)||endWith(“/d”) )&&length>3

就这样凑合交差吧,以后(没有以后)再去把它丰富了,做成牛逼的正则表达式。

Excel种的数据类型研究【原创】【精】的更多相关文章

  1. java 8种基本数据类型的默认值及所占字节数

    通过一段代码来测试一下 8种基本数据类型的默认值 package dierge; public class Ceshi { int a; double b; boolean c; char d; fl ...

  2. 【转】Java八种基本数据类型的比较及其相互转化

    java中有且仅有八种基本数据类型,记住就行,共分为四类: 第一类:整型-->byte     short      int     long 第二类:浮点-->float    doub ...

  3. main方法中声明8种基本数据类型的变量并赋值

    main方法中声明8种基本数据类型的变量并赋值  char→  int→ long→ float→ double byte→ short→ 

  4. JavaSE复习日记 : 八种基本数据类型

    /* * 基本数据类型 * * Java里的8种基本数据类型: * byte --- 1 byte = 8 bit; * short --- 2 byte = 16 bit; * int --- 4 ...

  5. js数据类型:引用和5种基本数据类型

    javascript有2种基本数据类型:引用和基本数据类型 基本数据类型又有5个分类:布尔型.字符串.数值.undefined.NULL.

  6. Java常用类之【八种基本数据类型】

    一.装箱和拆箱 装箱:将基本数据类型包装为对应的包装类对象 拆箱:将包装类对象转换成对应的基本数据类型 JDK5.0中为基本数据类型提供了自动装箱(boxing).拆箱(unboxing)功能 二.八 ...

  7. 【JavaScript的五种基本数据类型及转换】

    js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Null,Undefined),和一种混合数据类型就是特殊的(Object). "undefined& ...

  8. java中八种基本数据类型以及它们的封装类,String类型的一些理解

    在我们面试或者考试过程中经常会考到八种基本数据类型以及它们的封装类,那么有哪八种基本数据类型呢?它们的封装类又是什么呢? 首先,八种基本数据类型分别是:int.short.float.double.l ...

  9. JAVA四类八种基本数据类型

    boolean类型 Boolean在内存中占用一个字节. 当java编译器把java源代码编译为字节码时,会用int或byte来表示boolean.在java虚拟机中,用整数零来表示false,用任意 ...

随机推荐

  1. 20190903 - CSDN 的奇葩替换

    可能是出于安全原因 CSDN 对内容中的代码,作了很多奇葩的替换. 比如下面两行,是否有差别? # - # -16 有.其实 cut 后的短横线,内部编码不同,前者复制后无法被识别. 再比如下面两个词 ...

  2. 《精通并发与Netty》学习笔记(05 - Google Protobuf与Netty的结合)

    protobuf是由Google开发的一套对数据结构进行序列化的方法,可用做通信协议,数据存储格式,等等.其特点是不限语言.不限平台.扩展性强 Netty也提供了对Protobuf的天然支持,我们今天 ...

  3. 构建LNMP平台

    1方案 安装部署Nginx.MariaDB.PHP环境 安装部署Nginx.MariaDB.PHP.PHP-FPM: 启动Nginx.MariaDB.FPM服务: LNMP(Linux.Nginx.M ...

  4. C++学习笔记-异常处理

    程序设计的要求之一就是程序的健壮性.希望程序在运行时能够不出或者少出问题.但是,在程序的实际运行时,总会有一些因素会导致程序不能正常运行.异常处理(Exception Handling)就是要提出或者 ...

  5. java面试指导2019-9-10

    11. Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一 ...

  6. PYTHON 100days学习笔记007-3:字符串和常用数据结构

    目录 Day007:字符串和常用数据结构 1.使用字符串 2.使用列表 3.使用元组 4.使用字典 4.练习 4.1:在屏幕上显示跑马灯文字 4.2 设计一个函数产生指定长度的验证码,验证码由大小写字 ...

  7. Spring Boot + Vue 跨域请求问题

    使用Spring Boot + Vue 做前后端分离项目搭建,实现登录时,出现跨域请求 Access to XMLHttpRequest at 'http://localhost/open/login ...

  8. 非阻塞IO可以等同异步IO嘛?

    脑壳短路的一瞬间,黑人问号? 在这个问题之前,我们先了解下IO的过程,下图是异步IO,做个参照(图片随便找的,侵权联系小弟删除) 简单叙述下windows同步IO的流程(图片描述的是异步IO) 1.调 ...

  9. MySQL优化心得

    一打开科技类论坛,最常看到的文章主题就是MySQL性能优化了,为什么要优化呢? 因为: 数据库出现瓶颈,系统的吞吐量出现访问速度慢 随着应用程序的运行,数据库的中的数据会越来越多,处理时间变长 数据读 ...

  10. ARC099E. Independence

    考虑一个子问题.给定无向图 $G$,如何判断能否将 $G$ 的点集分成两部分 $S$.$T$ 使得 $S$ 和 $T$ 导出的子图都是完全图? 这个问题把我难住了.解法是考虑 $G$ 的补图 $G'$ ...