61阅读

大写数字金额转换-Word2007能否实现有没有将数字转换为大写金额的功能

发布时间:2017-12-13 所属栏目:数字大写转换

一 : Word2007能否实现有没有将数字转换为大写金额的功能

时间:2009-07-14 来源:未知 阅读: 3808次 评论1条

问题:

1、数字引用:在文章不同地方出现同一数字,我能否在更新其中一处后,其他位置的数字也同时更新?

2、有没有将数字转换为大写金额的功能。

解答:

1、Word可以使用多种方法,实现修改一个数据,其它位置的对该数据的引用进行更新。实现的方法主要有:通过选择性粘贴为链接的方式;通过设置源数据的书签,在其它引用位置使用REF域进行引用;使用自动图文集定义源数据,然后在其它位置插入一个对于该自动图文集的AUTOTEXT域。使用DOCPROPERTY 域,通过文档属性定义一个源数据值,该值可以在文档属性中进行设置与修改(如设置标题值为“10”,其它所有位置使用。使用DOCVARIABLE域,该域需要通过VBA指定值后才能获得。

2、这是《Word非常接触》一书中的自动填充人民币金额大写的域代码,我把它贴出来,希冀对大家有所帮助、裨益。金额大写中,对于整数金额,可以直接通过【插入】/【数字】命令,在打开的【数字】对话框中选取为“壹,贰,叁…”数字类型(设置数字格式)即可实现。对于小数部分,原理也是设置数字格式,只是把角分数据提取出来后再设置其格式。

金额大写转换的域代码:

{ SET Data { ={ Quote "A{ ={ SEQ Z }+1 }" } } }{ SET JinE { =ABS(Data) #"0.00" } }{ SET Yuan { =INT(JinE) } }{ SET Jiao { =INT(JinE*10-Yuan*10) } }{ SET Fen { =INT(JinE*100-Yuan*100-Jiao*10) } }{ IF Data < 0 "负" "" }{ IF Yuan = JinE "{ =Yuan *CHINESENUM2 }圆整" { IF Fen = 0 "{ =Yuan *CHINESENUM2 }圆{ =Jiao *CHINESENUM2 }角整" { IF Jiao = 0 "{ =Yuan *CHINESENUM2 }圆{ =Fen *CHINESENUM2 }分" "{ =Yuan *CHINESENUM2 }圆{ =Jiao *CHINESENUM2 }角{ =Fen *CHINESENUM2 }分" }} }

说明:

①可以将该嵌套域代码保存于自动图文集中以方便调用。

②可在单元格中填充该域代码。

③具有正负数自动识别功能。

④自动四舍五入。

⑤最大金额绝对值为214 748 364 7。

“www.61k.com。

未完待续,更多精彩请关注比比读小说网微信公众号

二 : OraclePLSQL将金额数字转换成大写

CREATE OR REPLACE FUNCTION SMALITOBLG(
SMALLMONEY VARCHAR2
)
RETURN VARCHAR2 IS
BIGWRITE VARCHAR2(54); -- 用于负担会答谢的钱数
BIGNUMVARCHAR(2);-- 用于存放每一个阿拉伯数字对应的汉子
RMBVARCHAR(2);-- 用于存放人民币单位
MONEYPLACENUMBER;-- 用于确定人民币的精度,最多只能精确到分
DOTPLACENUMBER;-- 确定小数点的位置
MONEYNUMNUMBER;-- 人民币的位置
MYEXCEPTION EXCEPTION; -- 自定义异常
BEGIN

DOTPLACE :=INSTR(SMALLMONEY,'.');

IF(LENGTH(SMALLMONEY) > 14)OR ((LENGTH(SMALLMONEY) > 12) AND (DOTPLACE = 0)) THEN
RAISE MYEXCEPTION;
END IF;

IF DOTPLACE = 0 THEN
MONEYPLACE := 0;
ELSE
MONEYPLACE := DOTPLACE - LENGTH(SMALLMONEY);
END IF;

FOR MONEYNUM IN REVERSE1..LENGTH(SMALLMONEY) LOOP

IF MONEYNUM <> DOTPLACE THEN

CASE SUBSTR(SMALLMONEY,MONEYNUM,1)
WHEN '1' THEN BIGNUM := '[www.61k.com]壹';
WHEN '2' THEN BIGNUM := '贰';
WHEN '3' THEN BIGNUM := '叁';
WHEN '4' THEN BIGNUM := '肆';
WHEN '5' THEN BIGNUM := '伍';
WHEN '6' THEN BIGNUM := '陆';
WHEN '7' THEN BIGNUM := '柒';
WHEN '8' THEN BIGNUM := '捌';
WHEN '9' THEN BIGNUM := '玖';
WHEN '0' THEN BIGNUM := '零';
END CASE;
CASE MONEYPLACE
WHEN '-2' THEN RMB := '分';
WHEN '-1' THEN RMB := '角';
WHEN '0' THEN RMB := '元';
WHEN '1' THEN RMB := '拾';
WHEN '2' THEN RMB := '佰';
WHEN '3' THEN RMB := '仟';
WHEN '4' THEN RMB := '萬';
WHEN '5' THEN RMB := '拾';
WHEN '6' THEN RMB := '佰';
WHEN '7' THEN RMB := '仟';
WHEN '8' THEN RMB := '亿';
WHEN '9' THEN RMB := '拾';
WHEN '10' THEN RMB := '佰';
WHEN '11' THEN BIGNUM := '仟';
END CASE;
MONEYPLACE := MONEYPLACE + 1;
IF BIGWRITE IS NULL THEN
BIGWRITE := BIGNUM || RMB;
ELSE
BIGWRITE := BIGNUM || RMB || BIGWRITE;
END IF;
END IF;
END LOOP;
RETURN BIGWRITE;
EXCEPTION -- 异常处理部分
WHEN MYEXCEPTION THEN
DBMS_OUTPUT.PUT_LINE('该函数只能转换长度不大于14位或整数位不大于12位的钱数!');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('不是有效的钱数!');
END SMALITOBLG;

三 : ABAP 金额转化成中文大写数字

FUNCTION Z_DIGITAL_LOWER_TO_UPPER.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*"    VALUE(DIGITALIN) TYPE C
*" EXPORTING
*"    VALUE(DIGITALOUT) TYPE C
*"----------------------------------------------------------------------

 IF digitalin = '0'.
   digitalout = '零'.
 ELSEIF digitalin = '1'.
   digitalout = '壹'.
 ELSEIF digitalin = '2'.
   digitalout = '贰'.
 ELSEIF digitalin = '3'.
   digitalout = '叁'.
 ELSEIF digitalin = '4'.
   digitalout = '肆'.
 ELSEIF digitalin = '5'.
   digitalout = '伍'.
 ELSEIF digitalin = '6'.
   digitalout = '陆'.
 ELSEIF digitalin = '7'.
   digitalout = '柒'.
 ELSEIF digitalin = '8'.
   digitalout = '捌'.
 ELSEIF digitalin = '9'.
   digitalout = '玖'.
 ELSE.
   digitalout = '×'.
 ENDIF.

ENDFUNCTION.

FUNCTION Z_MONEY_LOWER_TO_UPPER.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*"    VALUE(MONEYIN) TYPE CRMT_GROSS_VALUE_CUM
*" EXPORTING
*"    VALUE(MONEYOUT) TYPE C
*"----------------------------------------------------------------------

 DATA: ipos TYPE I,
     iwan TYPE I,
     imod TYPE I,
     pin TYPE P DECIMALS 2,
     strint TYPE C LENGTH 10,
     strdec TYPE C LENGTH 3,
     strintt TYPE C,
     strintd TYPE C,
     strintu TYPE C LENGTH 40,
     strdect TYPE C,
     strdecd TYPE C,
     strdecu TYPE C LENGTH 4.

 pin = MONEYIN.
 IF pin eq 0.
   ipos = 0.
 ELSE.
   ipos = FLOOR( LOG10( pin ) ) + 1. "计算数值pin的整数位数。(www.61k.com]
 ENDIF.
*write / ipos.

*计算小数部分
 pin = pin * 100. "将数值的百分位变为个位,便于处理。
 strdect = pin - pin DIV 10 * 10. "获取数值的百分位,也就是分。
 IF strdect NE '0'. "如果值为0,则不显示该值,直接跳过。
   CALL FUNCTION 'Z_DIGITAL_LOWER_TO_UPPER' "调用数值小写转大写的函数,获得大写的数字。
       EXPORTING
           DIGITALIN = strdect
       IMPORTING
           DIGITALOUT = strdecd.
   CONCATENATE strdecd '分' INTO strdecu. "生成金额的“分”。
 ENDIF.
 pin = pin DIV 10. "将十分位变为个位。
 strdect = pin - pin DIV 10 * 10. "获取数值的十分位,也就是角。
 IF strdect EQ '0' AND strdecu EQ ''. "如果角为0,分也为0,则金额的小数部分就没有。
   strdecu = ''.
 ELSEIF strdect EQ '0' AND strdecu NE ''. "如果角为0,分不为0,则角位只写“零”不写“角”。
   CONCATENATE '零' strdecu INTO strdecu.
 ELSE. "如果角不为0,则直接与前面生成的分进行拼接。
   CALL FUNCTION 'Z_DIGITAL_LOWER_TO_UPPER' "调用数值小写转大写的函数。
       EXPORTING
           DIGITALIN = strdect
       IMPORTING
           DIGITALOUT = strdecd.
   CONCATENATE strdecd '角' strdecu INTO strdecu. "生成金额的“角”和“分”
 ENDIF.
 pin = pin DIV 10. "恢复原来的整数位。

 iwan = 0. "万位标记,四个数值位为一“万”,从个位开始,所以iwan的初值为0。
*计算整数部分
 DO ipos TIMES.
   strintt = pin - pin DIV 10 * 10.
   imod = iwan MOD 4.
   IF imod EQ 0.
     IF iwan = 0.
       IF strintt NE '0'.
         CALL FUNCTION 'Z_DIGITAL_LOWER_TO_UPPER'
           EXPORTING

扩展:abap 金额大写 / 大写金额转化 / excel 转化为大写金额


             DIGITALIN = strintt
           IMPORTING
             DIGITALOUT = strintd.
         strintu = strintd.
       ENDIF.
     ELSEIF iwan = 4.
       IF strintt NE '0'.
         CALL FUNCTION 'Z_DIGITAL_LOWER_TO_UPPER'
           EXPORTING
             DIGITALIN = strintt
           IMPORTING
             DIGITALOUT = strintd.
       ELSE.
         strintd = ''.
       ENDIF.
       CONCATENATE strintd '万' strintu INTO strintu.
     ELSEIF iwan = 8.
       IF strintt NE '0'.
         CALL FUNCTION 'Z_DIGITAL_LOWER_TO_UPPER'
           EXPORTING
             DIGITALIN = strintt
           IMPORTING
             DIGITALOUT = strintd.
       ELSE.
         strintd = ''.
       ENDIF.
       CONCATENATE strintd '亿' strintu INTO strintu.
     ENDIF.
   ENDIF.
   IF imod EQ 1.
     IF strintt NE '0'.
       CALL FUNCTION 'Z_DIGITAL_LOWER_TO_UPPER'
         EXPORTING
           DIGITALIN = strintt
         IMPORTING
           DIGITALOUT = strintd.
       CONCATENATE strintd '拾' strintu INTO strintu.
     ELSEIF strintd NE '零'.
       CONCATENATE '零' strintu INTO strintu.
     ENDIF.
   ENDIF.
   IF imod EQ 2.
     IF strintt NE '0'.
       CALL FUNCTION 'Z_DIGITAL_LOWER_TO_UPPER'
         EXPORTING
           DIGITALIN = strintt
         IMPORTING
           DIGITALOUT = strintd.
       CONCATENATE strintd '佰' strintu INTO strintu.
     ELSEIF strintd NE '零'.
       CONCATENATE '零' strintu INTO strintu.
     ENDIF.
   ENDIF.
   IF imod EQ 3.
     IF strintt NE '0'.
       CALL FUNCTION 'Z_DIGITAL_LOWER_TO_UPPER'
         EXPORTING
           DIGITALIN = strintt
         IMPORTING
           DIGITALOUT = strintd.
       CONCATENATE strintd '仟' strintu INTO strintu.
     ELSEIF strintd NE '零'.
       CONCATENATE '零' strintu INTO strintu.
     ENDIF.
   ENDIF.
   pin = pin DIV 10.
   iwan = iwan + 1.
*   write: / iwan, strintt, strintu, imod.
 ENDDO.

*连接整数位和小数位。
 CONCATENATE strintu '元' strdecu INTO MONEYOUT.

*把“零亿”、“零万”、“零元”都替换掉。

扩展:abap 金额大写 / 大写金额转化 / excel 转化为大写金额


 REPLACE ALL OCCURRENCES OF '零零' in monEYOUT with '零' .
 REPLACE ALL OCCURRENCES OF '零零' in monEYOUT with '零' .
 REPLACE ALL OCCURRENCES OF '零亿' in monEYOUT with '亿' .
 REPLACE ALL OCCURRENCES OF '零万' in monEYOUT with '万' .
 REPLACE ALL OCCURRENCES OF '零元' in monEYOUT with '元' .

 IF ipos eq 0.
   MONEYOUT = '零元'.
 ENDIF.

ENDFUNCTION.

扩展:abap 金额大写 / 大写金额转化 / excel 转化为大写金额

四 : 数字金额如何快速转大写金额

[大写数字金额]数字金额如何快速转大写金额——简介
一般我们在写账单时,为了防止篡改都是写大写金额,但是相对于阿拉伯数字,大写金额有点难写!那么,有什么方法可以快速将数字金额转成大写金额呢?时钟boo为您详细讲解:
大写数字金额 数字金额如何快速转大写金额[大写数字金额]数字金额如何快速转大写金额——在线转换工具

[大写数字金额]数字金额如何快速转大写金额 一
将数字金额转换成中文大写,不用安装什么转换软件,直接在百度搜索中输入“人民币大写转换工具”,如下图!
大写数字金额 数字金额如何快速转大写金额
[大写数字金额]数字金额如何快速转大写金额 二
接着单击“人民币大写转换工具”,如下图!
ps:其实不用选也可以都是一样,可以把阿拉伯数字金额转换成大写金额的!
大写数字金额 数字金额如何快速转大写金额
[大写数字金额]数字金额如何快速转大写金额 三
然后直接将需要转换成大写数字输入进去,就会自动转换成大写金额了,如下图!
ps:转换的可以直接复制!
大写数字金额 数字金额如何快速转大写金额[大写数字金额]数字金额如何快速转大写金额——百度输入法转换

[大写数字金额]数字金额如何快速转大写金额 一
输入法也可以快速打出大写金额,这便是用百度输入法的,其他输入法用法也是大同小异的!首先百度搜索“百度输入法”,下载并安装!

大写数字金额 数字金额如何快速转大写金额
[大写数字金额]数字金额如何快速转大写金额 二
安装好后,在百度输入法的中文状态下,输入V后再输入数字金额,如“v123.33”,选择大写金额(壹佰贰拾叁圆叁角叁分)就可以了,如下图:
大写数字金额 数字金额如何快速转大写金额[大写数字金额]数字金额如何快速转大写金额——Excel表格

[大写数字金额]数字金额如何快速转大写金额 一
首先打开Excel表格,然后输入我们需要转换成大写金额的数字,如“123.33”:
大写数字金额 数字金额如何快速转大写金额
[大写数字金额]数字金额如何快速转大写金额 二
右击输入单元格,选择“设置单元格格式”!在弹出单元格设置窗口中,选择“数字”——“特殊”——“中文大写数字”,如下图!

大写数字金额 数字金额如何快速转大写金额大写数字金额 数字金额如何快速转大写金额
[大写数字金额]数字金额如何快速转大写金额 三
单元格设置好后,选择确定,就可以看到数字“123.33”变成大写数字“壹佰贰拾叁.叁叁”了!
大写数字金额 数字金额如何快速转大写金额[大写数字金额]数字金额如何快速转大写金额——注意事项
上述三种方法如果有帮到你,请点击下方【投票】支持下,如果想以后浏览本经验方便些,请点击下方【收藏】,如果疑问请点击下方【评论】!
本文标题:大写数字金额转换-Word2007能否实现有没有将数字转换为大写金额的功能
本文地址: http://www.61k.com/1137262.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1