润乾报表数字大写转换解决方案

  • Post author:
  • Post category:其他



在制作金融报表,报销单的时候,经常需要将数字转化为大写的文字,有时还需要逐位拆开,制成形如下图的报表:




润乾报表给出的相关解决方案如下:


首先为用户提供三种小数转换规则:直接舍弃、直接进位、四舍五入,分别用参数-1,1,和0来表示


然后构造参数用以保留小数位数,范围为[0,4]超出范围则按临近顺序选取0或4。设置好参数,写入默认值


如下图制表:





B1格中有一部分冗余校验,isnumber函数判定数据是否是数字,参数@number已经设定格式为数值,润乾会自动校验其格式,B1中的方法可用于从数据库中提取数据做校验。


其中B8单元格的完整内容是=if(B7>13,”万,千,百,十,”,””) + if(B7>9,”万,千,百,十,”,””) + “亿,千,百,十,万,千,百,十,元” +  if(B2==1,”,.,角”,””) + if(B2==2,”,.,角,分”,””) + if(B2==3,”,.,角,分,厘”,””) + if(B2==4,”,.,角,分,厘,毫”,””)


B8中的逗号作为B11中的识别符。


B14和B15用来标示“¥”的位置。


函数填写好后,需要设置B11单元格为横向扩展,然后将B10\B14\B15的上主格设置为B11,其余格的上主格要设为’0,即初始格,不扩展。


B3单元格的显示格式设定为if(B2==0,”#0″,B2==1,”#0.0″,B2==2,”#0.00″,B2==3,”#0.000″,B2==4,”#0.0000″)


B11的隐藏列属性中写入表达式:if(value()==”.”,true)


B17的显示值属性写入表达式:if(B14 >= 0, mid(value(),B14,B15), B14 == -1,”¥”,””)


第1行至第15行设置成隐藏行,不显示


B18的显示值要利用润乾报表自带的转换函数,rmb(value())。


调整好B列的宽度之后,程序执行如下:


该方法主要用于将数字拆分,如果单纯需要最下面的大写数字,可以利用B1格中的校验函数以及润乾的rmb()函数,可以大批量地自动转换大写数字。



版权声明:本文为zsq0511原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。