Contact

ROT13 Function (Calligra Sheets)

Text Intermediate Calligra Sheets

Apply ROT13 in Calligra Sheets with ASCII examples, reversible text checks and tested Unicode exceptions. ROT13 is obfuscation, not secure encryption.

Verification status: 16 selected formulas were executed through the Calligra Sheets 25.04.2 calculation engine library in the C locale. Exact typed outputs and source-derived checks are documented; 26.08.2 was source-checked only. No GUI-cell or import claim. How formula examples are checked

Unicode limitation: The inspected code tests each character after uppercasing but offsets the original code point. The tested non-ASCII letters ſ and ı therefore change unexpectedly to Ų and ľ.

Quick answer: =ROT13("Hello, World!") returns "Uryyb, Jbeyq!" in the tested engine.

Availability and version history

  • Introduced: First release not established; the name is present in Calligra 2.4.0 source.
  • Supported in: Calligra Sheets 26.08.2, with the limitations described here; no retirement established.
  • Scope: Desktop Sheets with the Text module. Formulas use English names and semicolon separators.
  • Checked: October 14, 2026: selected 25.04.2 engine-library formulas and independent reconstructions; 26.08.2 source only. The test locale was C. No GUI-cell, import or other-locale execution is claimed.

What ROT13 returns

ROT13 rotates the 26 ASCII letters by thirteen places and preserves ordinary ASCII letter case. It is useful for reversible spoilers or simple text puzzles. Anyone can reverse it by applying the same transformation, so it is not secure encryption and should not protect private data. Official function reference.

Syntax and arguments

=ROT13(text)

text is the single required argument. Other value types pass through the value-to-string conversion before the character loop. The table shows the output strings exactly. Registration and implementation.

Reproducible engine examples

Quotation marks identify text results; error tokens without quotes are actual errors. Numeric results are rounded here to twelve decimal places. The reconstruction column applies independent decimal arithmetic or the inspected character/parser rules, rather than claiming another application test.

Formula Engine result Independently reconstructed expectation
=ROT13("Hello, World!") "Uryyb, Jbeyq!" "Uryyb, Jbeyq!"
=ROT13("ABC xyz") "NOP klm" "NOP klm"
=ROT13("Nop KLM") "Abc XYZ" "Abc XYZ"
=ROT13("abc123!?") "nop123!?" "nop123!?"
=ROT13("") "" ""
=ROT13("é Ω ไทย") "é Ω ไทย" "é Ω ไทย"
=ROT13(123) "123" "123"
=ROT13("Rot13") "Ebg13" "Ebg13"

Practical worksheet

Enter Hello, World! in A2, then use =ROT13(A2) in B2. The result is Uryyb, Jbeyq!. Applying =ROT13(B2) restores the original ASCII text. Punctuation, spaces and digits in this example remain unchanged. This makes a convenient reversible display trick for a puzzle column, without introducing an encryption key or a security boundary.

Advanced interpretation and checks

For ASCII letters, positions A–M move forward thirteen and N–Z move backward thirteen. The same rule applies to lowercase ASCII letters, giving an involution: two applications recover the original input. The executed nested formula below checks that property for the greeting.

The general Unicode behavior is narrower. Long s ſ uppercases to ASCII S, causing thirteen to be subtracted from the original U+017F code point; the result is U+0172, Ų. Dotless i ı uppercases to ASCII I, causing thirteen to be added to U+0131 and yielding U+013E, ľ. These are source-explained observations, not the intended ASCII cipher. Restrict a reversible pipeline to validated ASCII text rather than assuming every Unicode string round-trips.

=ROT13(ROT13("Hello, World!"))

The executed result was "Hello, World!".

Boundaries and troubleshooting

The listed accented Greek/Thai example and full-width Latin example remain unchanged, but that does not cancel the two specific Unicode exceptions. Behavior for all Unicode casing combinations was not enumerated.

Numeric input 123 becomes the string 123. TRUE is converted to lowercase true, then transformed to gehr. An error expression is also converted to text: 1/0 becomes the successful string #QVI/0! after rotation of #DIV/0!. Preserve and validate the original input if you need error propagation; the output can no longer be treated as the original error value. Wrong argument counts produced #VALUE!.

Formula Engine result
=ROT13("ſ") "Ų"
=ROT13("ı") "ľ"
=ROT13("ABC") "ABC"
=ROT13(TRUE()) "gehr"
=ROT13(1/0) "#QVI/0!"
=ROT13() #VALUE!
=ROT13("A";"B") #VALUE!

Official evidence and precision scope

The complete selected callback is byte-identical in the inspected 25.04.2 and 26.08.2 sources. The text module has an unrelated SEARCH change; whole-file equality is not claimed. The locale helpers are byte-identical. These comparisons do not establish execution of the later release.