找回密码
 立即注册

QQ登录

只需一步,快速开始

爱心觉罗晓宇

注册会员

9

主题

28

帖子

79

积分

注册会员

积分
79
最新发帖
爱心觉罗晓宇
注册会员   /  发表于:2024-10-10 14:48  /   查看:305  /  回复:8

      let index = this.spread.getSheetCount();
        for (let i = 0; i <= index - 1; i++) {
          var sheet = this.spread.sheets[i];
          sheet.bind(GC.Spread.Sheets.Events.EditChange, function (sender, args) {
    var editingText = args.editingText;
    // 检查用户输入的内容是否包含负号
    if (editingText.includes('-')) {
        // 如果包含负号,则清除输入中的负号
        var newValue = editingText.replace(/-/g, '');
        // 将新值转换为数字类型
        var numericValue = parseFloat(newValue);
        // 确保保留两位小数并四舍五入
        var roundedValue = Math.round(numericValue * 100) / 100;
      console.log(roundedValue, '值')
        // 更新单元格的显示值
        args.sheet.setValue(args.row, args.col, roundedValue.toFixed(2));

        // 手动触发表格的重新计算
        args.sheet.recalc();
    }
});


7 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:2024-10-10 15:46:53
沙发
您好!请问下是需要在输入负数后自动将其转为正数吗?电子表格可以容纳的数据包括正负数值和其他文字,如果不需要负号,可以在编辑完成后将符号删除,将您代码片段中的EditChange事件修改为EditEnded事件试下。可以参考如下代码:
  1. sheet.bind(GC.Spread.Sheets.Events.EditEnded, function (sender, args) {
  2.     var editingText = args.editingText;
  3.     // 检查用户输入的内容是否包含负号
  4.     if (editingText.includes('-')) {
  5.         // 如果包含负号,则清除输入中的负号
  6.         var newValue = editingText.replace(/-/g, '');
  7.         // 将新值转换为数字类型
  8.         var numericValue = parseFloat(newValue);
  9.         // 确保保留两位小数并四舍五入
  10.         var roundedValue = Math.round(numericValue * 100) / 100;
  11.         console.log(roundedValue, '值')
  12.         // 更新单元格的显示值
  13.         sheet.setValue(args.row, args.col, roundedValue);
  14.     }
  15. });
复制代码


回复 使用道具 举报
爱心觉罗晓宇
注册会员   /  发表于:2024-10-10 15:55:39
板凳
已解决感谢
回复 使用道具 举报
爱心觉罗晓宇
注册会员   /  发表于:2024-10-10 16:01:06
地板
Wilson.Zhang 发表于 2024-10-10 15:46
您好!请问下是需要在输入负数后自动将其转为正数吗?电子表格可以容纳的数据包括正负数值和其他文字,如果 ...

我想输入的值小数保留两位小数并四舍五入怎么处理比较好
回复 使用道具 举报
爱心觉罗晓宇
注册会员   /  发表于:2024-10-10 16:06:08
5#
Wilson.Zhang 发表于 2024-10-10 15:46
您好!请问下是需要在输入负数后自动将其转为正数吗?电子表格可以容纳的数据包括正负数值和其他文字,如果 ...

负号已经去掉了 感谢
回复 使用道具 举报
爱心觉罗晓宇
注册会员   /  发表于:2024-10-10 16:08:50
6#
爱心觉罗晓宇 发表于 2024-10-10 16:01
我想输入的值小数保留两位小数并四舍五入怎么处理比较好

都已经搞定了
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-10-10 17:06:43
7#
好的,那就先结贴了,后续有其他问题的话随时开新帖提问哈。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-10-10 17:34:13
8#
爱心觉罗晓宇 发表于 2024-10-10 16:01
我想输入的值小数保留两位小数并四舍五入怎么处理比较好

设置单元格格式为数值,且保留两位小数,即可自动四舍五入。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部