excel表格中String类型数值数据转化为int及float等格式
最近有朋友喊我帮⼀个忙,给了我⼀个xls 的表格,说求平均数的时候出现问题了。我⼀想处理xls表格的平均数不是就直接是调⽤函数吗?不是很简单吗。但拿到表格之后才发现完全不⼀样。
打开之后,看起来确实是很基础的数字,我直接点击了上⾯的函数调⽤按钮。
到了函数中的AVERGE函数
很顺利的点击框选开始选择数据
在实验了⼏次之后发现并不顺利,下⽅⼀直出现的都是 #DIV/0!
我仔细想了⼀下,在C++中这是数据类型出错的返回值
相⽐windows的Microsoft的办公软件都是以C语⾔为内核的吧
在实验了⼏次之后,⼩编发现了问题的所在
⼤括号中的数字都有“ ”在两边
这是String字符串的格式
当然在原⽣的C语⾔中并没有String类型,只有char[ ]数组构成的字符串
但介于这仅仅只有⼀个图,我也不会判断这究竟是C++亦或者是JAVA或其他啊语⾔的String数组还是原⽣的C就可以使⽤的⼆维数组 或许有的朋友会觉得这个数组⾥⾯都是字符串,应该是String类型的数组,但是C中可以使⽤⼆维数组实现
但这时我想到能不能对单元格进⾏设置呢?
在单元格设置中我将单元格的规格设为了数值
结果并没有什么⽤
我尝试着将数值进⾏⼿动的改变
在数值被⼿动改为float浮点类型之后,数值靠在了右边
我看了看总共有多少数据,瞬间傻眼了
还要往后转滑轮很久才能滑完,每个表都是⼏页满的数据。。
我沉默了,这时我决定先搞清楚是什么原因导致的
由于现在平常都是做java和jsp或者前端的开发了,现在电脑上都没有C的编译器了
了好久才到了VC++6.0
⼀个很⽼的编译器
源码如下
源码如下
c++string类型运⾏结果如下
可以看到原⽣的C语⾔还是可以使⽤字符串数组,也就是⼆维数组来实现xls 的这个功能的
这样就不⽅便判断xls 的数据究竟是String类型还是char[ ]类型
但⽆论如何基本语法是没有变的
由于wps中是使⽤截取数据并放到⽂本框⾥⾯
我便想可以将数据转换成int吗?
答案是可以
可以看到在加上强制转换符之后,得到的结果已经是int类型的了
但是如果是⼀列数据的话
好像有问题,⽽且这列数据原本是⼩数的
⽽且⽆论是float和double的转化都不被认可 ⼩编顿时觉得这件事⽐想象的还要复杂
int  main(){
char a[4][4] = {"6", "5.4", "4.9", "2.1"};
for (int  i=0; i<4; i++){
printf ("%s \n", a[i]);
}
return  0;
}
在单元格设置中
只有数值这个选项,在不清楚xls 的内核或者wps的内核究竟是不是C还是只是对C进⾏了修改的情况
下,我也不到具体的char字符串数组或者String数组的转化函数
在⼩编决定测试⼀下C++中的类型转换函数的时候
想到了既然我把单元格规格设置为了数值,那么String类型的数据储存在⾥⾯会导致数据存储错误啊
虽然xls的兼容性很不错,不会导致数据存储错误,但⾄少是⼀个程序,开发⼈员在设计的时候就会考虑这⼀点,并作出解决⽅案啊
我再次看到主界⾯
选取框的左上⾓有⼀个感叹号
感叹号想都不⽤想就是报错的标志
直觉告诉我这就是解决的关键
原来这么简单吗。。。
这么简单的问题搞了我那么久的时间。。
真的打扰了。。
也希望朋友们不要再被相同的问题给迷惑这么久

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。