Ang CSV ay hindi "hatiin sa kuwit", at iyon ang buong trabaho. Ang isang field ay puwedeng may kuwit, newline o panipi — at hinahawakan ng RFC 4180 ang tatlo sa pamamagitan ng paglalagay ng panipi sa field at pagdodoble ng anumang panipi sa loob.
Ang converter na basta naghahati sa kuwit ay sumisira mismo sa datos na pinaka-sulit i-convert — tirahan, tala, pangalang may kuwit — at tahimik itong nangyayari.
Ang numero ay isinusulat muli nang eksakto. Ginagawang float ng JSON.parse ang bawat numero, kaya ang 1234567890123456789 ay bumabalik na …800 at ang 1.0 ay nagiging 1. Ang hinihingi sa converter ay palitan ang anyo, hindi ang halaga.
At ang field na nagsisimula sa = ay formula sa spreadsheet. Iniuulat ito, hindi binabago.
Dahil may kuwit, panipi o bagong linya ito, at hinahawakan ng CSV ang tatlo sa pamamagitan ng paglalagay ng panipi sa patlang. Ang converter na basta lang nagdurugtong ng halaga gamit ang kuwit ay sumisira mismo sa datos na pinakasulit ilipat — isang tirahan, isang nota, isang pangalang may kuwit — at tahimik nitong ginagawa iyon. Ang panipi sa loob ng patlang na may panipi ay isinusulat nang dalawang beses, at iyon ang panuntunan mula sa RFC 4180.
Dahil hindi nito pinaparse ang JSON mo gamit ang JSON.parse, na ginagawang floating-point na halaga ang bawat numero — ang 1234567890123456789 ay bumabalik bilang …800, at ang 1.0 ay bumabalik bilang 1. Ang converter ay hinihilingang baguhin ang anyo, hindi kailanman ang halaga, kaya inilalabas muli ang numero nang eksakto sa pagkakasulat nito. Ginagamit nito ang parehong kinamay na parser ng JSON Formatter sa parehong dahilan.
Ang nakapugad na object ay pinapatag sa mga column na parent.child, at iyon ang kayang hawakan ng spreadsheet. Ang array ay isinusulat bilang JSON sa loob ng iisang cell — nagbabago ang haba nito kada hilera, kaya ang paglatag nito sa mga column ay gagawing kasinlapad ng pinakamahabang array sa file ang hanay ng column at blangko ang karamihan sa hilera.
Dahil ang pagkuha sa unang record lamang ay tahimik na nagbabagsak sa anumang patlang na nasa ilang record lang — at mukhang ayos na ayos pagkatapos ang mga hilerang mayroon nito, at ganoon nagiging hindi napapansin ang pagkawala. Ang mga column ay pinagsamang key ng bawat record, at iniiwang blangko ang mga puwang.
Ang cell na nagsisimula sa =, +, - o @ ay itinuturing na pormula ng Excel at Google Sheets, kaya ang patlang na nagsasabing =HYPERLINK(...) ay nagiging buhay na link kapag binuksan ng iba ang file. Iniuulat ng pahinang ito ang bawat ganoong patlang sa halip na baguhin ito: ang paglagay ng panipi sa unahan ay magpapalit sa datos mo, at converter ito. Ayusin sila bago ipasa ang file.
Dahil ibinagsak ng paghula sa numero ang sero sa unahan — ang 0917 ay nagiging 917. Ang halagang mukhang numero ay isinusulat bilang numero bilang default, na kadalasang gusto at minsan ay mali. Pinapanatiling teksto ng pahinang ito ang halagang may sero sa unahan, pero kung gusto mong teksto ang lahat, patayin ang paghula.
Nananalo ang huling column na may ganoong pangalan, dahil hindi makakahawak ang JSON object ng parehong key nang dalawang beses. Sinasabi ito ng pahina sa halip na hayaang tahimik na maglaho ang naunang column — palitan muna ang pangalan ng column kung mahalaga silang dalawa.
Dahil puwedeng may newline ang field na may panipi, hindi malalaman ang hangganan ng row kung hindi sinusubaybayan ang panipi.
Ang cell na nagsisimula sa =, +, - o @ ay ipinapatakbo ng Excel at Sheets. Iniuulat ito ng pahina at hindi binabago: ang pagdagdag ng panipi sa unahan ay magbabago sa datos mo, at converter ito.
Runs entirely in your browser; nothing is transmitted. Numbers are re-emitted exactly as written rather than passed through a float. Fields a spreadsheet would treat as a formula are reported, never altered — changing them would change your data. Walang ipinapadala sa mga server namin ang tina-type mo rito — sa browser mo tumatakbo nang buo ang pagkuwenta.