From 15214b2f694b8c302283d0c9720bfd5b91ddc26a Mon Sep 17 00:00:00 2001 From: Michael Chus Date: Fri, 23 Jan 2026 22:34:46 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BE=D1=87=D0=B8=D1=81=D1=82=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B1=D0=B5=D0=BB=D0=BE=D0=B2=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=20=D0=B2=D1=81=D1=82=D0=B0=D0=B2=D0=BA=D0=B5=20=D1=87?= =?UTF-8?q?=D0=B8=D1=81=D0=B5=D0=BB=20=D0=B8=D0=B7=20Excel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mutatorEdit для числовых колонок: - Удаляет все пробелы (обычные, неразрывные) - Заменяет запятую на точку для дробных чисел - " 20 138 " → 20138 Co-Authored-By: Claude Opus 4.5 --- public/app.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/public/app.js b/public/app.js index c0196aa..eca6457 100644 --- a/public/app.js +++ b/public/app.js @@ -502,7 +502,7 @@ async function selectTable(schema, tableName) { field: col.COLUMN_NAME, headerSort: true, // ✅ Явно включаем сортировку sorter: sorterType, // ✅ Тип сортировщика для отображения стрелок - // ✅ Форматтер для чисел (разделитель тысяч, запятая для дробной части) + // ✅ Форматтер и мутатор для чисел ...(sorterType === "number" && { formatter: function(cell) { const value = cell.getValue(); @@ -515,6 +515,17 @@ async function selectTable(schema, tableName) { minimumFractionDigits: 0, maximumFractionDigits: Math.min(decimalPlaces, 6) }).format(num); + }, + // ✅ Очистка пробелов при вводе/вставке чисел + mutatorEdit: function(value) { + if (value === null || value === undefined || value === '') return value; + // Убираем все пробелы (обычные, неразрывные, etc.) + let cleaned = String(value).replace(/[\s\u00A0\u2007\u202F]+/g, ''); + // Заменяем запятую на точку для дробных чисел + cleaned = cleaned.replace(',', '.'); + // Если результат - валидное число, возвращаем его + const num = parseFloat(cleaned); + return isNaN(num) ? value : num; } }), // ✅ Добавляем тултип для заголовка