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
- Zoek in je bron naar een liggend streepje gevolgd door x en vier tekens uit 0 tot en met 9 en A tot en met F, afgesloten met nog een liggend streepje. Hexadecimale cijfers in hoofdletters en kleine letters gelden allebei als code.
- Ga na dat de waarde letterlijk bedoeld is. Bevat de bron zelf gecodeerde tekst, decodeer die dan in het systeem dat haar maakte, niet hier.
- Plak de tabel, klik op Berekenen en controleer het voorbeeld.
- Gebruik Downloaden (XLSX) en vergelijk de cel in de spreadsheet met je origineel.
- Carriage returns binnen een cel worden op dezelfde manier beschermd, dus ook die blijven bewaard.
Escapepatronen in andere exports
- CSV-downloads uit de browsertools schrijven _x0041_ als gewone tekens, omdat CSV zo'n codering niet kent; pas het lezen van een XLSX door de spreadsheet past haar toe.
- De XLSX-export van de Tablora-app escapet ampersands en haken, maar voegt deze bescherming niet toe, dus een cel van een pagina met _x0041_ kan gedecodeerd verschijnen. Exporteer zulke waarden als CSV uit de app, of plak de cellen hier in de tekstbehoudende export en download de XLSX.
- In gewone tabellen komen deze patronen zelden voor. Vind je er een, dan komt die meestal uit een technisch systeem, en dan loont de extra stap om het oorspronkelijke bestand ter vergelijking te bewaren.
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.