在 Google 表格中用逗号替换数字小键盘产生的小数点

Posted

技术标签:

【中文标题】在 Google 表格中用逗号替换数字小键盘产生的小数点【英文标题】:Replace the decimal mark produced by the numeric keypad with a comma in Google Sheets 【发布时间】:2021-10-21 06:31:34 【问题描述】:

我想使用键盘中的数字小键盘输入数字。我的电子表格使用法语语言环境,并使用逗号, 作为小数点而不是句点.。问题是数字键盘中的 . 键给出的是句点而不是逗号。

最终结果是用数字键盘输入的十进制数字变成了这样的文本字符串:

1234.56

...当我需要它们是这样的数字时:

1234,56

我无法更改全球语言或键盘设置,因为我在其他任何地方都使用美国数字和日期格式,包括在其他 Google 表格中。

如何使用数字键盘在特定的 Google 表格中输入十进制数字?

【问题讨论】:

回复Google sheet transformé . et ,。 当你需要输入法文数字时,只需将你的操作系统语言切换为法文,这很明显 我无法更改全局语言或键盘设置,因为我在其他任何地方都使用美国数字和日期格式,包括在其他 Google 表格中。 原来的问题不是说相反的吗? .replace(',','.')在原代码中。 确实如此,这是基于错误的假设,即小数点将是 的一部分,而它只是 数字格式的一部分。原始问题中尝试的解决方案将值视为文本字符串,并将值设置为文本字符串而不是数字。 【参考方案1】:

一种方法是使用onEdit(e) simple trigger 来查找输入的值是否是类似于0000.00 的文本字符串,如果是,则将其转换为数字,如下所示:

/**
* Simple trigger that runs each time the user hand edits the spreadsheet.
*
* For use with Google Sheets in international locales that use comma as decimal mark.
* Converts text strings that look like numbers with period as decimal mark to numbers.
*
* @param Object e The onEdit() event object.
*/
function onEdit(e) 
  if (!e || !e.value || Number.isNaN(Number(e.value))) 
    return;
  
  if (e.value.match(/^\d*\.\d+$/) && typeof e.range.getValue() === 'string') 
    e.range.setValue(Number(e.value));
  

【讨论】:

【参考方案2】:

如果您使用的是 Windows,则可以使用替代解决方案。你可以使用Autohotkey 试试这个脚本:

SetTitleMatchMode, 2
#IfWinActive French
NumpadDot::.

它会将 NumpadDot 更改为 对于每个窗口(包括浏览器选项卡),其中窗口标题包含单词“French”。

https://www.autohotkey.com/docs/commands/SetTitleMatchMode.htm

https://www.autohotkey.com/docs/commands/_IfWinActive.htm

【讨论】:

以上是关于在 Google 表格中用逗号替换数字小键盘产生的小数点的主要内容,如果未能解决你的问题,请参考以下文章

Google表格十进制数,如何删除逗号并添加零

表格会自行添加逗号

在输入Javascript中用点替换逗号

Excel 怎样批量添加逗号 急 在线等

在 MYSQL 上替换逗号分隔结果上的数字

如果是葡萄牙语,如何在 EditText 中用点替换逗号