您的位置:首页 > 其它

Excel的数据类型转换方法

2016-03-29 16:21 453 查看

导论

最近在用程序读写excel文件,碰到了一些excel单元格的数据类型的相关问题。总结了几个小技巧。对于用程序操作excel,或者需要用excel函数的朋友会有一些助益。

Excel的数据类型

Excel,在逻辑上分为这样几层关系:

book–就是整个excel文件。

sheet–工作表。一个excel文件至少有一个工作表,可能有多个工作表。sheet在excel界面上的一个个TAB。

row–行

column–列

cell–单元格

每个格子就是一个单元格。每个单元格中的数据都有其数据类型。在Excel中可以用TYPE函数获取数据类型。

如果 value 为 函数 TYPE 返回

数字 1

文本 2

逻辑值 4

误差值 16

数组 64

对excel公式执行type函数,返回8。因此推测类型8可能指的是公式。

不考虑误差、错误和数组这些类型,excel有如下这些常用类型:

数值

文本

布尔

日期

实际上,可以认为,excel单元格的数据类型,就是数值类型和文本类型两种。

因为,布尔类型,实际上会转为整数0和1来表示。

日期类型,实际上存储为整数类型。1900-01-01是第一天。日期存储的是自1900-01-01那天后的第几天。

日期类型,可以用文本形式给出,但实际上会自动转换为日期类型,用整数存储。

判断Excel单元格的数据类型的方法

Excel软件版本较多,而且还存在大量第三方软件。如我在Linux下常用openoffice打开Excel文件。要找到一个在所有兼容Excel的软件下正确判断Excel单元格的数据类型的方法是比较困难的。

经过摸索,我发现了一种通用的判断Excel单元格中的数据类型的方法。至少我还没有发现这种方法在哪种Excel兼容软件中不可用。

1,选中要查看的单元格,选择【开始】-【清除】,下拉选择【清除格式】。

2,然后,查看 当前的单元格中的数字是左对齐还是右对齐,如果是左对齐,那么就是文本格式储存的,如果是右对齐,那么则是以数字格式存储的。

正确判断Excel单元格的数据类型是非常重要的。很多Excel函数会挑单元格的数据类型。不经意间,你的excel公式的计算结果可能就是错的。

如Excel的SUM函数,不会统计数据类型是文本的单元格的数据。这样得到的错误结果可能会导致严重的经济损失。

数字存储为文本

默认,我们在单元格中录入能够转为数字的字符串,Excel兼容软件就会把它存为。

在数字前加半角的’(单引号),即可换成文本,但如果需要转换的数字较多,则这种办法较麻烦。

在程序中读取excel的数据时,不会把这个‘单引号读取出来。

文本存储为数字

1,新建一个1的数值类型单元格。

2,选中它。

3,再选中需要转为数字的一组单元格。

4,右键”选择性粘贴“。选择乘,确定后目标单元格就会变成数字。

如果是用上一节前面加上’变成的文本,则这招可能不管用。需要把文本前面的‘去掉。

总结

Excel编程中,单元格的数据类型是非常关键的。本文给出了几种查看和转换Excel单元格数据类型的通用方法。

注意

有很多种方法可以对Excel文件进行程序操作。如微软自己的.net类库和其他语言提供的第三方的类库。

建议不要使用微软自己的.net类库。因为,微软自己用来操作Excel的.net类库,是COM组件。不同版本的Excel软件都是不同的。如果最终用户安装的Excel软件版本和程序员开发时的Excel版本不同,那么就会发生找不到COM组件的错误。影响程序的可用性。

因此,我建议程序员使用第三方跨平台的Excel操作类库或者函数库。避免微软官方Excel类库的DLL地狱!

参考资料

1,Excel官方帮助文档:

https://support.office.com/zh-cn/excel

2,Excel函数大全:

https://support.office.com/zh-cn/article/Excel-%E5%87%BD%E6%95%B0%EF%BC%88%E6%8C%89%E7%B1%BB%E5%88%AB%E5%88%97%E5%87%BA%EF%BC%89-5f91f4e9-7b42-46d2-9bd1-63f26a86c0eb?ui=zh-CN&rs=zh-CN&ad=CN
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  excel