今天博主在工作中遇到了一个问题,通过"Read Range"这个活动获取的单元格中如果存在百分号,存入DataTable表中,再写入一个新的Excel表中,这个百分号就已经变成小数。
通过"Log Message"这个"Activities"活动发现,其实在获取数据的时候,这个百分号就已经变成小数了。
开始博主的想法主要有三个:1、希望通过机器人来打开这个Excel,通过鼠标点击来设置单元格格式,使之能够在获取数据的时候就已经变成百分数;2、在"Activities"活动查看是否有直接可以获取单元格的格式,然后直接格式刷到新写的表格中;3、直接获取这个变量,将这个小数*100,在加上一个“%”直接写入到新的表中。
第一个方法过于复杂,需要在重新设计一遍流程。第二个方法没有直接能够找到可以格式刷的活动。第三个是可以之直接实现的
但在过程中,遇到了一个错误:"Input string was not in a correct format."输入的字符串的格式不对。
通过记录日志,发现小数是不可以直接使用"Convert.ToInt32()",需要使用"Convert.Decimal()"将他转化为带有1位小数的数字,再使用"Convert.ToInt32()"就可一转化成整数类型。再通过"Convert.ToInt32().ToString"+"%"使之变成能够直接写入的百分比格式。
当然,现在自己所说的知识自己的一面之词,知识建立在解决自己问题的基础上。仅供初学者参考,如果错误还是希望能够交流一下,马上改正。
在这个问题中当然也想到了输入的单元格值为“#######”,或者是货币,时间,金融数字的格式不统一是不是也会出现,此篇文章将会在以后工作学习中,不断完善!