KKitForma.

Language

EnglishEnglishTürkçeTurkishDeutschGermanBlog unavailable in this language · open toolsEspañolSpanishBlog unavailable in this language · open toolsFrançaisFrenchBlog unavailable in this language · open toolsPortuguêsPortugueseBlog unavailable in this language · open toolsItalianoItalianBlog unavailable in this language · open toolsNederlandsDutchBlog unavailable in this language · open toolsPolskiPolishBlog unavailable in this language · open toolsРусскийRussianBlog unavailable in this language · open toolsУкраїнськаUkrainianBlog unavailable in this language · open toolsSvenskaSwedishBlog unavailable in this language · open toolsNorskNorwegianBlog unavailable in this language · open toolsDanskDanishBlog unavailable in this language · open toolsSuomiFinnishBlog unavailable in this language · open toolsČeštinaCzechBlog unavailable in this language · open toolsRomânăRomanianBlog unavailable in this language · open toolsΕλληνικάGreekBlog unavailable in this language · open toolsالعربيةArabicBlog unavailable in this language · open toolsעבריתHebrewBlog unavailable in this language · open toolsفارسیPersianBlog unavailable in this language · open toolsاردوUrduBlog unavailable in this language · open toolsहिन्दीHindiBlog unavailable in this language · open toolsবাংলাBengaliBlog unavailable in this language · open toolsதமிழ்TamilBlog unavailable in this language · open toolsతెలుగుTeluguBlog unavailable in this language · open toolsमराठीMarathiBlog unavailable in this language · open toolsગુજરાતીGujaratiBlog unavailable in this language · open tools简体中文Chinese SimplifiedBlog unavailable in this language · open tools繁體中文Chinese TraditionalBlog unavailable in this language · open tools日本語JapaneseBlog unavailable in this language · open tools한국어KoreanBlog unavailable in this language · open toolsTiếng ViệtVietnameseBlog unavailable in this language · open toolsไทยThaiBlog unavailable in this language · open toolsBahasa IndonesiaIndonesianBlog unavailable in this language · open toolsBahasa MelayuMalayBlog unavailable in this language · open toolsFilipinoFilipinoBlog unavailable in this language · open toolsKiswahiliSwahiliBlog unavailable in this language · open toolsAfrikaansAfrikaansBlog unavailable in this language · open toolsMagyarHungarianBlog unavailable in this language · open toolsБългарскиBulgarianBlog unavailable in this language · open toolsHrvatskiCroatianBlog unavailable in this language · open toolsSrpskiSerbianBlog unavailable in this language · open toolsSlovenčinaSlovakBlog unavailable in this language · open toolsSlovenščinaSlovenianBlog unavailable in this language · open toolsLietuviųLithuanianBlog unavailable in this language · open toolsLatviešuLatvianBlog unavailable in this language · open toolsEestiEstonianBlog unavailable in this language · open toolsCatalàCatalanBlog unavailable in this language · open toolsEuskaraBasqueBlog unavailable in this language · open tools

Code & data

Keep formula-looking text literal in a spreadsheet review export

Build a harmless three-cell fixture, distinguish CSV quoting from spreadsheet interpretation and record whether protection changed the delivered strings.

Decide whether the recipient needs text or formulas

A support export includes a customer’s comment, an internal label and a literal calculation example. If the destination is a review spreadsheet, these fields should remain text. If the destination is a calculation workbook you control, some fields may intentionally be formulas. Write that difference down before choosing an export option.

Spreadsheet software may interpret cells beginning with certain characters as formulas. That is a separate layer from CSV syntax. The safe synthetic fixture here uses =1+1 as text; it contains no external link, command or private data. Its expected visible value is the literal expression, not the number 2.

Review fixture as JSON:
[{"kind":"comment","value":"=1+1"},{"kind":"label","value":"+sample"},{"kind":"plain","value":"parcel ready"}]

OWASP: CSV injection and spreadsheet interpretation ↗

Do not confuse cell boundaries with literal text

CSV quotes protect the structure of a cell containing a delimiter or line break. They do not define the spreadsheet’s cell type. Seeing "=1+1" in a text editor therefore does not establish how a spreadsheet will display or calculate the imported cell.

Inspect the export as plain text first. Then use the destination’s documented text-import controls where available. Test in a new disposable document, and avoid evaluating untrusted formulas while investigating a file from another party. Keep the source strings so you can distinguish a protective change from data corruption.

RFC 4180: CSV quoting ↗OWASP: CSV injection and spreadsheet interpretation ↗

Review the explicit protection choice

KitForma JSON to CSV enables its spreadsheet formula protection by default. For the fixture, the first two value cells receive an apostrophe prefix in the exported CSV; parcel ready remains unchanged. The feature also considers headers and leading whitespace when detecting formula-like cells. The exported bytes intentionally differ from the raw strings.

Use this tool to prepare a small candidate export, then inspect it in the actual recipient application. It cannot certify every spreadsheet’s import behavior. If a machine importer requires the original characters, use a separate documented export path that preserves those strings and does not open them as active spreadsheet content.

  1. Keep an unchanged copy of the JSON fixture.
  2. Convert with formula protection enabled.
  3. Inspect the CSV text for intentional prefixes.
  4. Import the candidate as text in a disposable spreadsheet.
  5. Compare the visible value and underlying cell behavior.
Expected protected cell contents in the CSV:
=1+1      →  '=1+1
+sample   →  '+sample
parcel ready  →  parcel ready

Document the artifact that the next person receives

Give the review export a distinct name and record that formula-like strings were prefixed. Keep it separate from a machine import file. Reopen the saved spreadsheet or re-exported CSV and inspect the three fixture values again; another save step may change how a prefix is retained or interpreted.

For real records, add a review flag or manifest entry for changed fields so a colleague can trace the source value. Do not strip all leading apostrophes from an incoming file: an apostrophe may be genuine data. If the receiving application cannot reliably preserve the intended text, agree on a different delivery format and verify that path.

Q: What about a genuine negative amount?

Decide its type from the data contract. A numeric amount and a text field beginning with a minus sign are different cases. Review any protective prefix and the destination’s numeric import settings so that a safety choice does not silently break calculations.

Q: Does an apostrophe make every CSV safe everywhere?

No universal behavior is claimed here. Import, save and reopening behavior can differ between applications. Use harmless fixtures to verify the exact destination and retain a separate record of the original strings and protection applied.

KITFORMA

Put it into practice

Reading guides is free and needs no account. Linked tools explain any account or Pro requirements.

Further reading

Sources last reviewed:

KitForma prepared this guide with AI assistance. Examples illustrate a workflow; they are not measurements of real sales, search volume or success. Check the linked sources and the result with your own file.

How to use this guide

Published and maintained by KitForma. The linked references explain the relevant formats and definitions. Examples use sample inputs; they do not establish a speed, quality or compatibility guarantee for your files. Check the tool’s stated limits and inspect your downloaded result.

Publisher and project details

Get new guides in your inbox

Join our optional email newsletter for KitForma tools, practical guides and product updates.

Give consent on the separate Brevo form, then confirm the link in your email. This is separate from account and support preferences. Unsubscribe using the link in every newsletter.

Open comments in an ad-free view

KitForma

What would you like to do?

Support center