找回密码
 立即注册

QQ登录

只需一步,快速开始

llaysz

初级会员

20

主题

46

帖子

462

积分

初级会员

积分
462
llaysz
初级会员   /  发表于:2018-4-24 18:55  /   查看:3942  /  回复:3
如果某个单元格被格式化为日期格式,当这个日期是公式计算出来的,调用getValue获取出来的值是一个数字,请问这个问题要怎么解决,以下是代码,在官方的测试代码上点击运行以后手动去设置D2的=C2-20*365,然后点击test 按钮获得的值就是一个数字,而不是显示出来的字符串。


<div class="sample-turtorial">
    <div id="ss" style="width:100%; height:420px;border: 1px solid gray;"></div>
</div>
<a id="test">test</a>



$(document).ready(function () {
    var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {sheetCount: 2});
    var activeSheet = spread.getActiveSheet();
    var style = activeSheet.getStyle(1, 2);
    if (!style) {
      style = new GC.Spread.Sheets.Style();
    }
    style.formatter = "yyyymmdd";
    activeSheet.setStyle(1, 2, style);
    activeSheet.setStyle(1, 3, style);
    //activeSheet.setFormatter(1, 2, "yyyymmdd");
    activeSheet.setValue(1, 2, "2018-04-24")
    console.log(activeSheet.getCell(1,2).value())
    console.log(activeSheet.getCell(1,3).value())
    $("#test").click(function(){
                    console.log(activeSheet.getCell(1,3).value())
    })

});


3 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-4-25 09:19:52
沙发
您用sheet.getText(row,col)就可以获取到显示的文本了。因为formatter不会改变单元格的真实值(不会影响数据),只是根据格式来更改显示效果。所以用getValue获取到的内容是不变的,需要用getText来获取显示的信息。
回复 使用道具 举报
llaysz
初级会员   /  发表于:2018-4-25 10:55:41
板凳
ClarkPan 发表于 2018-4-25 09:19
您用sheet.getText(row,col)就可以获取到显示的文本了。因为formatter不会改变单元格的真实值(不会影响数据 ...

非常感谢,要是这些常用的技巧,可以整理成一个例子就完美了
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-4-25 17:11:59
地板
好的,您的建议我们已经收到,后面可以考虑将该例子写成一篇博客,发到我们的葡萄城技术博客中。

评分

参与人数 1满意度 +5 收起 理由
llaysz + 5 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部