通过 Handsontable 使用特定格式显示数字
Posted
技术标签:
【中文标题】通过 Handsontable 使用特定格式显示数字【英文标题】:Use a specific format to display numbers with Handsontable 【发布时间】:2016-03-17 09:47:42 【问题描述】:我需要强制 Handsontable 以特定格式(例如 1.000,01)显示数字,但它似乎忽略了我尝试用作千位分隔符的内容。
我尝试了几种方法来做到这一点,但都没有奏效:
为将包含数值cell.format = '0.0,00'
的单元格设置格式
实例化我的handsontable对象时设置相同的格式myTable.handsontable( format: '0.0,00' )
为 numeric.js 使用分隔符 thousands: '.', decimal: ','
创建语言环境
更改 working jsFiddle 中使用的格式(来自 handsontable 文档)但我无法获得所需的显示
知道我错过了什么吗?
【问题讨论】:
【参考方案1】:你是对的,不幸的是,numericjs 还不存在。如果使用方括号格式,效果会好一些,但仍不完美。
这是一个潜在的格式字符串,它似乎在许多情况下都有效,但不是全部:
0.0[,]00 $
【讨论】:
它不适用于 Handsontable,但是当我尝试使用numeral().format()
格式化数字时,我得到了正确的输出...我猜这个问题来自 Handsontable 而不是 numericjs。
真的吗?因为我将它添加到您的小提琴中并看到它有效,这就是我建议它的原因。但是,是的,这也可能是 Handsontable 的问题。一个解决方案是实现您自己的渲染器。将其附加到您要修改的列并使用您自己的格式化程序,甚至可以使用 numericjs 的更新版本
我在我的项目中直接尝试了您的解决方案,但没有成功。我只是在小提琴中尝试过,以确保我无法获得所需的格式化输出。需要说明的是,我在第一篇文章中输入了错误的格式,我将对其进行编辑。
很奇怪,好吧,我仍然建议使用自定义渲染器。它很简单,应该为您提供更广泛的格式选项。也许也可以在 github 上将此作为错误提交,因为它显然应该可以工作
肯定有我没有使用格式(例如在格式字符串中使用点并在输出中使用逗号),但是如果我使用带有像numeral.language('da-dk');
这样的右分隔符,然后使用numeral.format()
。现在的问题是我使用了 RuleJS 的公式,而我想要格式化的值是 '=F9'。我在使用 afterChange 事件时已经遇到了这个问题,我使用 getCell 来获取结果。使用自定义渲染器 getCell 返回公式而不是结果。如何在渲染器中获得公式的结果?以上是关于通过 Handsontable 使用特定格式显示数字的主要内容,如果未能解决你的问题,请参考以下文章
以 Handsontable 兼容格式返回 MVC Json