不时到大家有没有碰到过,将Excel里面的数据导出
论坛上以前的帖子也看过,多数是用jet的驱动在直接调用SQL语句从[&sheet1
]或者其他的sheet中导出数据但是这样有个问题,如果在Excel中存储的数据不
是标准格式的时候就会出问题。
比方说:
Excel表格中的某一列使用了日期时间格式,但是再输入的时候,在日期的前面
多加了一个空格,在使用驱动方式连接提取数据的时候取出来的时间就是""
前一阵,碰到了这个问题,使用了下面的这个方法解决的:
因为在.net中可以直接使用Excel类,并且可以直接从Excel中提取某一单元格的
数据,这个技术很多帖子都写了,我就不罗嗦了。大家搜一下有很多。
但是使用这种技术,如果提取的是日期时间格式的时候,提取出来的是一个整数
并且使用Convert.DateTme函数不能进行转化(不知道这个是不是2002的一个bug)
因为MM开发要用2002没办法!
错依旧使用了一个比较本的办法
DateTime base = new DateTime(1900,1,1);
因为1900.1.1通过Excel导入的时候返回值是1
所以通过Excel导入的那个整数值减去1就是从1900.1.1日以后需要增加的日期
使用下面的函数
base=base.AddDay(value-1);
得到一个新的日期时间类型值,现在Excel中的日期时间类型就成功转化过来了
ps:我也说了这只是一个临时的解决方案,其实将Excel的数据倒出来,并不简单
如果Excel的数据不是正确的格式经常丢失数据。还清高人指点。