Числовой формат
Числовой формат в электронных таблицах определяет, как отображаются числа. Он позволяет настраивать количество знаков после запятой, разделители разрядов, проценты, символы валют и другие параметры. Благодаря числовым форматам данные становятся более наглядными и понятными.
Действие валюты на панели инструментов выбирает символ и формат по свойству Univer region. Если оно не задано явно, region следует за locale:
const univer = new Univer({ locale: LocaleType.RU_RU, region: LocaleType.DE_DE,})Внимание
Синтаксис DBNum не поддерживается.
Форматы чисел
Измените число, формат или регион. Исходное число при этом не меняется.
Отображение
1,234.57
Исходное число: 1234.567
Попробуйте 0.25 в процентах или 45658 как дату.
Использование
В интерфейсе числовой формат ячейки можно задать через строку меню. Также можно установить поле s.n.pattern1 в объекте данных ячейки ICellData.
const data = { v: 123456.789, s: { n: { pattern: '#,##0.00', }, },}По умолчанию текст, начинающийся с 0, и числа, которые можно преобразовать в формат даты, автоматически получают соответствующий числовой формат.
Чтобы отключить автоматическое преобразование, воспользуйтесь одним из следующих способов:
- Задайте для ячейки текстовый формат.
import { DEFAULT_TEXT_FORMAT_EXCEL } from '@univerjs/core'const data = { v: '012.0', s: { n: { pattern: DEFAULT_TEXT_FORMAT_EXCEL, // Text format }, },}Или задайте формат ячейки с помощью Facade API:
fRange.setNumberFormat(DEFAULT_TEXT_FORMAT_EXCEL)- Перед вводом числа добавьте одинарную кавычку
'(это называется принудительным преобразованием в текст).
Facade API
Импорт
Примечание о режиме плагинов
Импортировать пакет Facade вручную требуется только в режиме плагинов. В режиме предустановок соответствующий пакет Facade уже включён, поэтому дополнительный импорт не нужен.
import '@univerjs/sheets-numfmt/facade'Установка числового формата
Описание параметров см. по адресу: https://support.microsoft.com/en-us/office/number-format-codes-5026bbd6-04bc-48cd-bf33-80f18b4eae68
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Set the number format of the A1 cell to '#,##0.00'.const fRange = fWorksheet.getRange('A1')fRange.setValue(1234.567).setNumberFormat('#,##0.00')fRange.getDisplayValue() // 1,234.57const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Set the number formats of the A1:B2 range.const fRange = fWorksheet.getRange('A1:B2')fRange.setValues([ [1234.567, 0.1234], [45658, 0.9876],]).setNumberFormats([ ['#,##0.00', '0.00%'], ['yyyy-MM-DD', ''],])fRange.getDisplayValues() // [['1,234.57', '12.34%'], ['2025-01-01', 0.9876]]Получение числового формата
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Get the number format of the top-left cell of the A1:B2 range.const fRange = fWorksheet.getRange('A1:B2')fRange.getNumberFormat()const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()// Get the number formats of the A1:B2 range.const fRange = fWorksheet.getRange('A1:B2')fRange.getNumberFormats()Установка локали числового формата
Локаль числового формата можно задать с помощью метода FWorkbook.setNumfmtLocal(local).
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const fRange = fWorksheet.getRange('A1')fRange.setValue(1234.567).setNumberFormat('#,##0.00')// Set the locale en for number formatting.fWorkbook.setNumfmtLocal('en')fRange.getDisplayValue() // 1,234.57// Set the locale de for number formatting.fWorkbook.setNumfmtLocal('de')fRange.getDisplayValue() // 1.234,57Отключение предупреждения и маркера текстового формата
Плагин UniverSheetsNumfmtPlugin предоставляет два параметра конфигурации — disableTextFormatAlert и disableTextFormatMark, которые отключают соответственно предупреждение и маркер текстового формата ячейки.
Выберите свой режим и добавьте эти параметры в существующую инициализацию. Сохраните остальные плагины, язык, тему и контейнер; не регистрируйте один плагин дважды.
import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt'univer.registerPlugin(UniverSheetsNumfmtPlugin, { disableTextFormatAlert: true, disableTextFormatMark: true,})import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'import { createUniver } from '@univerjs/presets'const { univerAPI } = createUniver({ presets: [ UniverSheetsCorePreset({ disableTextFormatAlert: true, disableTextFormatMark: true, }), ],})Локализованные форматы дат
Панель форматов даты использует текущую настройку locale Univer для шаблонов и предварительного просмотра. Существующие пользовательские форматы остаются доступны. При смене выделенного диапазона панель обновляется в соответствии с текущими ячейками.
Footnotes
-
Числовой формат меняет отображение, но не сохранённое значение. Формат
0%показывает0.25как25%, но формулы используют0.25. ↩
Насколько полезно это руководство?