websheet 之 格式化

06-01 1786阅读

格式化功能还不完善,目前只支持金额、日期(部分)格式化部分功能。目前不支持多语言。

{.is-warning}

一、金额格式化

1.1 金额

        可以直接使用系统预设的格式化对象来对单元格进行格式化,访问路径位 websheet.Model.NumFmts.* 。 系统预设见3.2节内容。下面代码直接使用系统预设的‘#,##0’对金额进行格式化。

    //系统预设--格式化成正数
    let numFmt3 = websheet.Model.NumFmts.numFmt3;
    activeSheet.SetCellNumFmt('C1',numFmt3);
    activeSheet.SetCellNumFmt(2,3,numFmt3);

        如果你有自己定义格式化需求,则可以通过声明自己的格式化对象来进行格式化。下面代码格式化代码,对数字千位分隔,小数展示位4位,负数红色括号内展示。

注意自定义格式化对象的id不能与系统内id冲突,也不能和模版内定义的id冲突。

{.is-warning}

    //自定义 - 格式化成4位小数 不要与系统预设的冲突,否则会引起其他单元格格式化问题
    let numFmt200 = new websheet.Model.NumFmt();
    numFmt200.numFmtId=200;
    numFmt200.formatCode='#,##0.0000_);[Red]\(#,##0.0000\)';
    activeSheet.SetCellNumFmt('C5',numFmt200);
    activeSheet.SetCellNumFmt(6,3,numFmt200);

1.2 百分百

        与金额类似可以直接使用系统预设的格式化对象来对单元格进行格式化。 系统预设见3.2节内容。下面代码直接使用系统预设的‘0%’对金额进行百分百格式化。

    //系统预设--百分比
    let numFmt9 = websheet.Model.NumFmts.numFmt9;
    activeSheet.SetCellNumFmt('C7',numFmt9);

        与金额类似,如果你有自己定义格式化需求,则可以通过声明自己的格式化对象来进行格式化。下面代码格式化代码,百分百3位小数展示。

注意自定义格式化对象的id不能与系统内id冲突,也不能和模版内定义的id冲突。

{.is-warning}

    //自定义百分百格式化
    let numFmt201 = new websheet.Model.NumFmt();
    numFmt201.numFmtId=201;
    numFmt201.formatCode='0.000%';
    activeSheet.SetCellNumFmt(9,3,numFmt201);

1.3 完整代码示例

在线代码

{.is-success}

        完整的金额和百分比代码如下:

  
    let wsheet = new websheet('myofdID', yourElement);
   /**
    * 第一步 获取激活的activeSheet
    */
    let activeSheet = wsheet.ActiveSheet();
 
    
    let r=1;
    let anumber=123123123.1234
    //金额格式化
    activeSheet.SetCellValue(r++,3,anumber);
    activeSheet.SetCellValue(r++,3,-anumber);
    activeSheet.SetCellValue(r++,3,anumber);
    activeSheet.SetCellValue(r++,3,-anumber);
    activeSheet.SetCellValue(r++,3,anumber);
    activeSheet.SetCellValue(r++,3,-anumber); 
    //百分百格式化
    activeSheet.SetCellValue(r++,3,1.111);
    activeSheet.SetCellValue(r++,3,1.111);
    activeSheet.SetCellValue(r++,3,1.111); 
     
    /**
    * 第二步   金额格式化
    */
    //系统预设--格式化成正数
    let numFmt3 = websheet.Model.NumFmts.numFmt3;
    activeSheet.SetCellNumFmt('C1',numFmt3);
    activeSheet.SetCellNumFmt('C2',numFmt3);
    //系统预设--格式化成2位小数
    let numFmt40 =  websheet.Model.NumFmts.numFmt40;
   
    activeSheet.SetCellNumFmt('C3',numFmt40);
    activeSheet.SetCellNumFmt('C4',numFmt40);
    //自定义 - 格式化成4位小数 不要与系统预设的冲突,否则会引起其他单元格格式化问题
    let numFmt200 = new websheet.Model.NumFmt();
    numFmt200.numFmtId=200;
    numFmt200.formatCode='#,##0.0000_);[Red]\(#,##0.0000\)';
    activeSheet.SetCellNumFmt('C5',numFmt200);
    activeSheet.SetCellNumFmt('C6',numFmt200);
    //系统预设--百分比
    let numFmt9 = websheet.Model.NumFmts.numFmt9;
    
    activeSheet.SetCellNumFmt('C7',numFmt9);
    //系统预设--百分比
    let numFmt10 = websheet.Model.NumFmts.numFmt10;
   
    activeSheet.SetCellNumFmt('C8',numFmt10);
    //自定义百分百格式化
    let numFmt201 = new websheet.Model.NumFmt();
    numFmt201.numFmtId=201;
    numFmt201.formatCode='0.000%';
    activeSheet.SetCellNumFmt(9,3,numFmt201);
    /**
     * 第三步   重新绘制表格
     */
    activeSheet.setColWidth(3,160);
    wsheet.BuildSheet();
    wsheet.Draw();

        结果如下:

websheet 之 格式化

二、 日期时间格式化

2.1 NOW函数

        NOW函数是EXCEL中获取当前日期和时间的函数,对日期和时间格式化我将使用该函数。使用该函数的方法也很简单只要在单元格内增加“=NOW()”即可,下面的例子中我们将A列的3行都设置成了NOW函数。

    activeSheet.SetCellValue(r++,1,'=NOW()');
    activeSheet.SetCellValue(r++,1,'=NOW()');
    activeSheet.SetCellValue(r++,1,'=NOW()'); 

2.2 日期格式化

        使用“yyyy/M/d”方式格式化:

    //yyyy/M/d 格式 
    let numFmt14 = websheet.Model.NumFmts.numFmt14;
    activeSheet.SetCellNumFmt('A1',numFmt14);

        使用“yyyy年m月d日”方式格式化:

    //yyyy年m月d日 格式 
    let numFmt31 = websheet.Model.NumFmts.numFmt31;
    activeSheet.SetCellNumFmt('A2',numFmt31);

        yyyy张m三d李”自定义方式格式化:

   //自定义 -  //yyyyAmBdC 格式
    let numFmt200 = new websheet.Model.NumFmt();
    numFmt200.numFmtId=200;
    numFmt200.formatCode='yyyy张m三d李 ';
    activeSheet.SetCellNumFmt('A3',numFmt200); 

2.3 时间格式化

        下文例子中,分别通过“h时mm分ss秒”,“上午/下午 h时mm分ss秒”,“h:mm:ss AM/PM”三种格式对时间进行了格式化。

      //h时mm分ss秒
    let numFmt33 = websheet.Model.NumFmts.numFmt33;
    activeSheet.SetCellNumFmt('A4',numFmt33);
     //上午/下午 h时mm分ss秒
    let numFmt35 = websheet.Model.NumFmts.numFmt35;
    activeSheet.SetCellNumFmt('A5',numFmt35);
     //h:mm:ss AM/PM
     let numFmt19 = websheet.Model.NumFmts.numFmt19;
    activeSheet.SetCellNumFmt('A6',numFmt19);

2.4 完整代码示例

在线代码

{.is-success}

  let wsheet = new websheet('myofdID', yourElement);
 
     /**
     * 第一步 获取激活的activeSheet
     */
    let activeSheet = wsheet.ActiveSheet();
 
    
    let r=1;
 
     
    //日期格式化
    activeSheet.SetCellValue(r++,1,'=NOW()');
    activeSheet.SetCellValue(r++,1,'=NOW()');
    activeSheet.SetCellValue(r++,1,'=NOW()'); 
    //时间格式化
    activeSheet.SetCellValue(r++,1,'=NOW()');
    activeSheet.SetCellValue(r++,1,'=NOW()');
    activeSheet.SetCellValue(r++,1,'=NOW()'); 
 
 
    /**
    * 第二步   日期格式化
    */
    //yyyy/M/d 格式 
    let numFmt14 = websheet.Model.NumFmts.numFmt14;
    activeSheet.SetCellNumFmt('A1',numFmt14);
     //yyyy年m月d日 格式 
    let numFmt31 = websheet.Model.NumFmts.numFmt31;
    activeSheet.SetCellNumFmt('A2',numFmt31);
    //自定义 -  //yyyyAmBdC 格式
    let numFmt200 = new websheet.Model.NumFmt();
    numFmt200.numFmtId=200;
    numFmt200.formatCode='yyyy张m三d李 ';
    activeSheet.SetCellNumFmt('A3',numFmt200); 
    /**
    * 第二步   时间格式化
    */
    
     //h时mm分ss秒
    let numFmt33 = websheet.Model.NumFmts.numFmt33;
    activeSheet.SetCellNumFmt('A4',numFmt33);
     //上午/下午 h时mm分ss秒
    let numFmt35 = websheet.Model.NumFmts.numFmt35;
    activeSheet.SetCellNumFmt('A5',numFmt35);
     //h:mm:ss AM/PM
     let numFmt19 = websheet.Model.NumFmts.numFmt19;
    activeSheet.SetCellNumFmt('A6',numFmt19);
    
    /**
     * 第三步   重新绘制表格
     */
    activeSheet.setColWidth(1,160);
    activeSheet.WorkFormula(); //重建公式
    activeSheet.cacl();//公式计算
    wsheet.BuildSheet();
    wsheet.Draw();

        结果如下:

websheet 之 格式化

三、NumFmt对象及常用式化

        常用格式化id如下。

numFmtIdformatCode说明
10
20.00
3#,##0
4#,##0.00
90%
100.00%
110.00E+00
14yyyy/mm/dd
15d-mmm-yy
16d-mmm
17mmm-yy
18h:mm AM/PM
19h:mm:ss AM/PM
20h:mm
21h:mm:ss
22m/d/yy h:mm
37h:mm:ss
38#,##0 ;[Red](#,##0)
39#,##0.00;(#,##0.00)
40#,##0.00;[Red](#,##0.00)
45mm:ss
48##0.0E+0
27yyyy年m月
28m月d日
29m月d日
30m-d-yy
31yyyy年m月d日
32h时mm分
33h时mm分ss秒
34上午/下午 h时mm分
35上午/下午 h时mm分ss秒
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码