Tablora

Tablora · Bibliotheek

Tekst die op een SpreadsheetML-escape lijkt behouden

Tekst als _x0041_ vormt in XLSX-bestanden een escapecode. De tekstbehoudende export beschermt die, zodat de cel _x0041_ toont en niet de letter A.

Een patroon dat het XLSX-formaat reserveert

In een XLSX-bestand kan tekst codes bevatten in de vorm _x gevolgd door vier hexadecimale cijfers en een liggend streepje, zoals _x0041_. Een spreadsheet die het bestand leest, decodeert elke code naar het teken waarvoor ze staat, dus _x0041_ wordt de hoofdletter A en _x000D_ een carriage return. Voor software werkt dat handig, maar het wordt een probleem als een echte waarde toevallig op een code lijkt, bijvoorbeeld een systeemcode, een veldnaam uit een database of een token uit een log.

De tekstbehoudende export beschermt elk zo'n patroon voordat hij het schrijft. Hij zet de escape voor het liggend streepje ervoor, wat de spreadsheet vertelt dat ze de volgende tekens letterlijk moet tonen. Dat vormt een aparte stap naast het escapen van ampersands en punthaken voor XML.

Alleen precies deze vorm valt eronder: een liggend streepje, x, vier hexadecimale tekens en een afsluitend liggend streepje. Iets als _x41_, of _x0041 zonder afsluitend streepje, blijft in het bestand en in de spreadsheet gewone tekst.

Het voorbeeld _x0041_

Het voorbeeld op de pagina heeft één kolom met de naam code en de waarde _x0041_. De verwachte celtekst in de werkmap luidt _x0041_, geschreven als expliciete tekst, dus de spreadsheet ziet daar geen formule en geen getal. Open je tablora-table.xlsx, dan toont de cel de zeven tekens die je invoerde, en niet de letter A.

Waarden controleren die op escapes lijken

Escapepatronen in andere exports

Invoer

Tabeltekst
code _x0041_
Scheidingsteken
,

Resultaten

Rijen
2
Kolommen
1
code
_x0041_
Bestandsgrootte in bytes
2302

Elke spreadsheetcel wordt als tekst opgeslagen om identificatiecodes en formuleachtige inhoud te behouden.