Tablora

Tablora · Библиотека

Сохранить текст, похожий на escape-последовательность SpreadsheetML

Текст вроде _x0041_ — это код экранирования внутри файлов XLSX. Конвертер с сохранением текста защищает его, и ячейка показывает _x0041_, а не букву A.

Шаблон, зарезервированный форматом XLSX

Внутри файла XLSX текст может содержать коды вида _x, затем четыре шестнадцатеричные цифры и подчёркивание, например _x0041_. Электронная таблица, читая файл, декодирует каждый код в символ, который он обозначает, так что _x0041_ превращается в заглавную букву A, а _x000D_ — в возврат каретки. Для программ это удобно, но становится проблемой, когда реальное значение случайно похоже на код — например, системный идентификатор, имя поля из базы данных или токен из журнала.

Конвертер с сохранением текста защищает каждый такой шаблон перед записью. Он добавляет экранирование для подчёркивания в начале, и это сообщает электронной таблице, что следующие символы надо показать буквально. Это отдельный шаг, не связанный с экранированием амперсандов и угловых скобок для XML.

Затрагивается только точная форма: подчёркивание, x, четыре шестнадцатеричных символа и закрывающее подчёркивание. Что-то вроде _x41_ или _x0041 без закрывающего подчёркивания — обычный текст и в файле, и в электронной таблице.

Пример с _x0041_

В примере на странице один столбец с именем code и значением _x0041_. Ожидаемый текст ячейки в книге — _x0041_, записанный как явный текст, так что электронная таблица не видит там ни формулы, ни числа. Когда вы откроете tablora-table.xlsx, ячейка покажет семь введённых вами символов, а не букву A.

Проверка значений, похожих на коды

Шаблоны экранирования в других экспортах

Входные данные

Текст таблицы
code _x0041_
Разделитель полей
,

Результаты

Строки
2
Столбцы
1
code
_x0041_
Размер файла в байтах
2302

Все ячейки электронной таблицы сохраняются как текст, чтобы сохранить идентификаторы и содержимое, похожее на формулы.