Excel种的数据类型研究【原创】【精】
因为要做一个项目,开始研究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种的数据类型研究【原创】【精】的更多相关文章
- java 8种基本数据类型的默认值及所占字节数
通过一段代码来测试一下 8种基本数据类型的默认值 package dierge; public class Ceshi { int a; double b; boolean c; char d; fl ...
- 【转】Java八种基本数据类型的比较及其相互转化
java中有且仅有八种基本数据类型,记住就行,共分为四类: 第一类:整型-->byte short int long 第二类:浮点-->float doub ...
- main方法中声明8种基本数据类型的变量并赋值
main方法中声明8种基本数据类型的变量并赋值 char→ int→ long→ float→ double byte→ short→
- JavaSE复习日记 : 八种基本数据类型
/* * 基本数据类型 * * Java里的8种基本数据类型: * byte --- 1 byte = 8 bit; * short --- 2 byte = 16 bit; * int --- 4 ...
- js数据类型:引用和5种基本数据类型
javascript有2种基本数据类型:引用和基本数据类型 基本数据类型又有5个分类:布尔型.字符串.数值.undefined.NULL.
- Java常用类之【八种基本数据类型】
一.装箱和拆箱 装箱:将基本数据类型包装为对应的包装类对象 拆箱:将包装类对象转换成对应的基本数据类型 JDK5.0中为基本数据类型提供了自动装箱(boxing).拆箱(unboxing)功能 二.八 ...
- 【JavaScript的五种基本数据类型及转换】
js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Null,Undefined),和一种混合数据类型就是特殊的(Object). "undefined& ...
- java中八种基本数据类型以及它们的封装类,String类型的一些理解
在我们面试或者考试过程中经常会考到八种基本数据类型以及它们的封装类,那么有哪八种基本数据类型呢?它们的封装类又是什么呢? 首先,八种基本数据类型分别是:int.short.float.double.l ...
- JAVA四类八种基本数据类型
boolean类型 Boolean在内存中占用一个字节. 当java编译器把java源代码编译为字节码时,会用int或byte来表示boolean.在java虚拟机中,用整数零来表示false,用任意 ...
随机推荐
- Claymore's Dua Miner挖矿教程
一.软件准备:首先需要一款挖矿软件.在这里推荐Claymore's Dua Miner的官方原版. 注意: 1. 如果不了解,请不要在网上随意下载其它版本的挖矿软件或者Claymore's Dua M ...
- django 之(一) --- DjangoRestFormwork
接口概念 IOP:面向接口编程,不再关注具体的实现:只关注输入.输出. http://www.ruanyifeng.com/blog/2018/10/restful-api-best-practice ...
- 随机森林之oob的计算过程
随机森林有一个重要的优点就是,没有必要对它进行交叉验证或者用一个独立的测试集来获得误差的一个无偏估计.它可以在内部进行评估,也就是说在生成的过程中就可以对误差建立一个无偏估计. 随机森林在生成每颗决策 ...
- 配置cinder-backup服务使用ceph作为后端存储
在ceph监视器上执行 CINDER_PASSWD='cinder1234!'controllerHost='controller'RABBIT_PASSWD='0penstackRMQ' 1.创建p ...
- java发送邮件(一)--补充添加附件
今天来记录一下如何使用java来发送邮件 背景 之前项目有个需求,当产品出现故障时会把情况上送给服务器,服务器发送邮件将故障产品的位置以及故障信息等告知维修人员.发送邮件的接口不是我负责的,但是有兴趣 ...
- LCA cogs 2450 2048 1588
t1 2450距离 链接:http://cogs.pro:8081/cogs/problem/problem.php?pid=vSNNNVqga [题目描述] 在一个村子里有N个房子,一些双向的路连接 ...
- 李宏毅 线性回归预测PM2.5
作业说明 给定训练集train.csv,要求根据前9个小时的空气监测情况预测第10个小时的PM2.5含量. 训练集介绍: (1):CSV文件,包含台湾丰原地区240天的气象观测资料(取每个月前20天的 ...
- MySQL连接处理方式及最佳并发连接数设置
MySQL连接处理方式及最佳并发连接数设置 mysql是单进程,多线程的架构,通过创建多个线程来服务不同的用户连接,通常情况下,随着用户连接数的增加,mysql内部用于处理用户连接的线程也会同步的增长 ...
- win7/xp解除系统限制的网速
对电脑不熟悉者的方法: 1.单击“开始-开始搜索”,输入“gpedit.msc”,回车后即可打开“组策略对象编辑器”. 2.展开“计算机配置-管理模板-网络-QoS数据包计划程序”,双击右面设置栏中的 ...
- android带参和不带参的页面跳转形式
FActivity.java package com.example.demo06; import android.app.Activity;import android.content.Contex ...