excel表怎么增加列 c++_EXCEL表公式计算数据,但导入总是不对?3招教你怎么解决...

工作中经常会用到EXCEL表,而EXCEL表中也会经常运用到公式计算。

如果遇到公式计算的数据导入网页端系统,问题来了。

前段时间公司系统涉及导入数据,发现有一部分人在系统里面显示的性别为“未知”。

研究提供的导入原始excel文件发现,其中性别、出生日期、年龄三个值是通过特殊的excel公式从身份证一列计算的来的。

问题的根源是解析excel性别的时候遇到单元格中内容为一串公式,无法匹配到正常的性别,所以导入系统时,系统设置为未知。

fb79e586a8964267d19a7434410c4a74.png

那么该如何解决问题呢?

从表面解决问题

如果数据量比较小,且该问题今后不会再出现,可以手工修改数据。

直接从系统找到对应的订单修改性别即可。

但该处理方案,治标不治本。

b404eda61baf3d218eb7e5304a8c22f4.png

从系统入口解决问题

制作导入系统的excel表的时候,复制内容注意,如果遇到有公式的文档,需要特殊处理。

首先选中需要复制的单元格,进行复制;

然后复制到目的单元格,点击右键,选择性粘贴,

在弹出的窗口中选择数值,

这样操作后,就会把公式计算后的结果复制过来,而不是把整个公式复制过来。

4aac55336d83f3620acaf6c5431a0285.png

从系统根源解决问题

通过对解析excel文件的程序进行优化。

扫描解析excel文件的时候,获取每个单元格中内容过程中,加上一个逻辑判断,根据单元格中内容的格式分别进行处理。

如果遇到格式为CellType.FORMULA,不是直接获取内容,调用第三方库提供的方法,获取通过公式计算后的结果值。

XSSFFormulaEvaluator eva = new XSSFFormulaEvaluator(hssfworkbook);eva.Evaluate(row.GetCell(j)).StringValue;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值