通过 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 中禁用调整特定列的大小

将 Json 数据传递给handsontable

以 Handsontable 兼容格式返回 MVC Json

Handsontable 特殊货币格式

在jQuery Handsontable控件中怎样获取修改后表格

使用 handsontable 是不是可以为特定的行或列动态添加 css 类?