Tablora

Tablora · Biblioteca

Preservar texto parecido com um escape SpreadsheetML

Um texto como _x0041_ é um código de escape dentro de arquivos XLSX. O conversor que preserva o texto o protege, para que a célula mostre _x0041_, e não a letra A.

Um padrão reservado pelo formato XLSX

Dentro de um arquivo XLSX, o texto pode conter códigos no formato _x seguido de quatro algarismos hexadecimais e um sublinhado, como _x0041_. Uma planilha que lê o arquivo decodifica cada código no caractere que ele representa, então _x0041_ vira a letra maiúscula A e _x000D_ vira um retorno de carro. Isso é útil para os programas, mas vira um problema quando um valor real por acaso se parece com um código, como um identificador de sistema, o nome de um campo de banco de dados ou um token de log.

O conversor que preserva o texto protege cada um desses padrões antes de gravá-lo. Ele acrescenta o escape do sublinhado inicial, que diz à planilha para mostrar os caracteres seguintes literalmente. É uma etapa separada do escape de e comerciais e sinais de menor e maior para o XML.

Só a forma exata é afetada: um sublinhado, x, quatro caracteres hexadecimais e um sublinhado de fechamento. Algo como _x41_, ou _x0041 sem o sublinhado final, é texto comum no arquivo e na planilha.

O exemplo _x0041_

O exemplo da página tem uma coluna chamada code com o valor _x0041_. O texto esperado da célula na pasta de trabalho é _x0041_, gravado como texto explícito, então a planilha não vê ali nem fórmula nem número. Quando você abre tablora-table.xlsx, a célula mostra os sete caracteres que você inseriu, e não a letra A.

Conferindo valores parecidos com escapes

Padrões de escape em outras exportações

Dados de entrada

Texto da tabela
code _x0041_
Delimitador
,

Resultados

Linhas
2
Colunas
1
code
_x0041_
Tamanho do ficheiro em bytes
2302

Todas as células da folha são guardadas como texto para preservar os identificadores e o conteúdo semelhante a fórmulas.