[{"data":1,"prerenderedAt":1562},["ShallowReactive",2],{"blog-post-\u002Fblog\u002Fformatting-data-for-accounting-system-imports":3,"blog-related-\u002Fblog\u002Fformatting-data-for-accounting-system-imports":493},{"id":4,"title":5,"body":6,"coverImage":482,"description":483,"extension":484,"meta":485,"navigation":486,"path":487,"publishedAt":488,"relatedToolPath":195,"seo":489,"stem":490,"translationKey":491,"__hash__":492},"blog_en\u002Fblog\u002Fformatting-data-for-accounting-system-imports.md","Formatting Data for Accounting System Imports",{"type":7,"value":8,"toc":463},"minimark",[9,13,18,21,68,72,75,79,82,160,168,178,185,189,198,237,240,243,249,252,258,261,265,268,271,290,294,302,327,330,344,350,356,360,363,389,393,416,420,425,428,432,438,442,449,453,456,460],[10,11,12],"p",{},"Your accounting software import stops at row 847 with an error message that explains nothing. Or the import succeeds, and a week later you find one invoice booked twice. In bookkeeping, one badly formatted row means a wrong balance. Formatting your CSV data before an accounting system import prevents journal corrections that take far longer to fix.",[14,15,17],"h2",{"id":16},"why-accounting-imports-fail","Why Accounting Imports Fail",[10,19,20],{},"Seven problems show up most often:",[22,23,24,32,38,44,50,56,62],"ul",{},[25,26,27,31],"li",{},[28,29,30],"strong",{},"Headers do not match."," The system looks for a column named \"Invoice No\", but your file says \"Invoice Number\".",[25,33,34,37],{},[28,35,36],{},"Mixed date formats."," \"12\u002F10\u002F26\", \"12 Oct 2026\", and \"2026-10-12\" appear in one column.",[25,39,40,43],{},[28,41,42],{},"Numbers mixed with symbols."," \"$1,500.00\" does not read as a number.",[25,45,46,49],{},[28,47,48],{},"Hidden spaces."," \"Maju Jaya Ltd \" with a trailing space reads as a new customer.",[25,51,52,55],{},[28,53,54],{},"Blank rows."," Leftovers from another system's export halt the import midway.",[25,57,58,61],{},[28,59,60],{},"Duplicate transactions."," The same row appears twice and doubles the figures in your reports.",[25,63,64,67],{},[28,65,66],{},"Files over the row limit."," The target system rejects a file that runs too long.",[14,69,71],{"id":70},"start-from-your-systems-import-template","Start From Your System's Import Template",[10,73,74],{},"Most accounting software provides an import template. Download it and treat it as the reference for column names, column order, date format, and number format. Paste your data into that template. Your system's documentation usually states the row limit per import too.",[14,76,78],{"id":77},"fix-column-formats-in-a-spreadsheet","Fix Column Formats in a Spreadsheet",[10,80,81],{},"Format fixes happen in Excel or Google Sheets, before you export the CSV. This table covers the columns that cause the most trouble:",[83,84,85,101],"table",{},[86,87,88],"thead",{},[89,90,91,95,98],"tr",{},[92,93,94],"th",{},"Column",[92,96,97],{},"Avoid",[92,99,100],{},"Use",[102,103,104,116,127,138,149],"tbody",{},[89,105,106,110,113],{},[107,108,109],"td",{},"Date",[107,111,112],{},"A mix of \"12\u002F10\u002F26\" and \"12 Oct 2026\"",[107,114,115],{},"One format that matches the template",[89,117,118,121,124],{},[107,119,120],{},"Amount",[107,122,123],{},"\"$1,500.00\"",[107,125,126],{},"A plain number such as 1500.00, or whatever the template asks for",[89,128,129,132,135],{},[107,130,131],{},"Account code, tax ID, invoice number",[107,133,134],{},"A number format that strips leading zeros",[107,136,137],{},"Plain text format",[89,139,140,143,146],{},[107,141,142],{},"Names with commas",[107,144,145],{},"Commas without quotation marks",[107,147,148],{},"Let the spreadsheet wrap them in quotes on export",[89,150,151,154,157],{},[107,152,153],{},"Negative values",[107,155,156],{},"Parentheses or a trailing minus sign",[107,158,159],{},"The format the template requires",[10,161,162,163,167],{},"To standardize dates in Excel, the ",[164,165,166],"code",{},"TEXT"," function turns one cell into the format you pick:",[169,170,175],"pre",{"className":171,"code":173,"language":174},[172],"language-text","=TEXT(A2,\"yyyy-mm-dd\")\n","text",[164,176,173],{"__ignoreMap":177},"",[10,179,180,181,184],{},"To strip a currency symbol, use ",[28,182,183],{},"Find and Replace"," to swap the symbol for nothing, then set the column to a number format. Watch the thousands and decimal separators. The target system decides whether decimals use a dot or a comma.",[14,186,188],{"id":187},"clean-the-data-with-csv-cleaner","Clean the Data With CSV Cleaner",[10,190,191,192,197],{},"Once the column formats are right, export to CSV and clear out the rest with ",[193,194,196],"a",{"href":195},"\u002Foffice-tools\u002Fspreadsheet\u002Fcsv-cleaner","CSV Cleaner",". The tool runs in your browser, so your financial data never uploads to a server.",[199,200,201,207,210,226],"ol",{},[25,202,203,204,206],{},"Open ",[193,205,196],{"href":195},".",[25,208,209],{},"Choose your CSV file or drag it onto the page.",[25,211,212,213,216,217,216,220,216,223,206],{},"Tick the options you need: ",[28,214,215],{},"Trim spaces in each cell",", ",[28,218,219],{},"Remove blank rows",[28,221,222],{},"Remove duplicate rows",[28,224,225],{},"Remove empty columns",[25,227,228,229,232,233,236],{},"Click ",[28,230,231],{},"Copy result",", or click ",[28,234,235],{},"Download .csv"," to save the cleaned file.",[10,238,239],{},"Each option shows its effect as soon as you switch it on. The header stays as the first row, and the cleaning options apply to the data rows below it.",[10,241,242],{},"Here is data before cleaning. The first and fourth rows match exactly, one row is blank, and some cells carry spaces at the start or end:",[169,244,247],{"className":245,"code":246,"language":174},[172],"Date,Invoice No,Customer,Amount\n12\u002F10\u002F2026 ,INV-001, Maju Jaya Ltd ,$1500.00\n,,,\n12\u002F10\u002F2026,INV-002,Sinar Trading,$750.00\n12\u002F10\u002F2026 ,INV-001, Maju Jaya Ltd ,$1500.00\n",[164,248,246],{"__ignoreMap":177},[10,250,251],{},"The result with all four options on:",[169,253,256],{"className":254,"code":255,"language":174},[172],"Date,Invoice No,Customer,Amount\n12\u002F10\u002F2026,INV-001,Maju Jaya Ltd,$1500.00\n12\u002F10\u002F2026,INV-002,Sinar Trading,$750.00\n",[164,257,255],{"__ignoreMap":177},[10,259,260],{},"CSV Cleaner does not change cell contents. The Amount column above still holds the dollar sign, and the date format stays as it was. The tool also does not rename headers or reorder columns. Finish all of that in the spreadsheet before you export.",[14,262,264],{"id":263},"be-careful-removing-duplicates-from-transaction-data","Be Careful Removing Duplicates From Transaction Data",[10,266,267],{},"CSV Cleaner treats a row as a duplicate when all its cells match a row that appeared earlier. In accounting data, two legitimate transactions can look identical: two fuel purchases with the same date and amount, for example. The tool removes one of them.",[10,269,270],{},"Two steps prevent losing real transactions:",[199,272,273,279],{},[25,274,275,278],{},[28,276,277],{},"Make sure every transaction has a distinguishing column",", such as an invoice number, voucher number, or sequence number. With that column, two legitimate transactions are never fully identical.",[25,280,281,284,285,289],{},[28,282,283],{},"Compare row counts before and after."," The difference should equal the number of duplicates you expected. Search a few invoice numbers that were duplicated in ",[193,286,288],{"href":287},"\u002Foffice-tools\u002Fspreadsheet\u002Fcsv-viewer","CSV Viewer"," and confirm each one has a single row.",[14,291,293],{"id":292},"split-large-files-with-csv-splitter","Split Large Files With CSV Splitter",[10,295,296,297,301],{},"Many accounting systems cap the rows or file size per import. ",[193,298,300],{"href":299},"\u002Foffice-tools\u002Fspreadsheet\u002Fcsv-splitter","CSV Splitter"," divides a large file into parts in your browser.",[199,303,304,308,311,314,321],{},[25,305,203,306,206],{},[193,307,300],{"href":299},[25,309,310],{},"Choose your CSV file.",[25,312,313],{},"Pick a split mode and enter the number.",[25,315,316,317,320],{},"Turn on ",[28,318,319],{},"Include the header in each file"," so every part has a header row.",[25,322,323,324,206],{},"Download the parts one by one, or click ",[28,325,326],{},"Download all",[10,328,329],{},"Two modes are available:",[22,331,332,338],{},[25,333,334,337],{},[28,335,336],{},"By row count"," cuts the file into parts with a fixed number of rows, such as 5,000 rows per file.",[25,339,340,343],{},[28,341,342],{},"By file count"," divides the data evenly across the number of files you set.",[10,345,346,347,349],{},"Example: a file holds 12,000 transactions, and the target system accepts at most 5,000 rows per import. Choose ",[28,348,336],{}," and enter 5,000. You get three files with 5,000, 5,000, and 2,000 rows. Check the row limit in your system's documentation, then pick a number below it.",[10,351,352,353,355],{},"The tool has no ZIP download yet. You download parts one at a time, or all together with the ",[28,354,326],{}," button.",[14,357,359],{"id":358},"test-a-small-batch-and-reconcile-the-totals","Test a Small Batch and Reconcile the Totals",[10,361,362],{},"Do not import the whole file into the ledger in one go.",[199,364,365,371,377,383],{},[25,366,367,370],{},[28,368,369],{},"Import ten rows first."," If your system offers test data or a trial mode, use it. Check that dates, amounts, and customer names land correctly.",[25,372,373,376],{},[28,374,375],{},"Match the control total."," Add up the amount column in the source file, then compare it with the amount recorded in the system after import. For split files, add up every part.",[25,378,379,382],{},[28,380,381],{},"Match the row count."," The data rows across all parts should equal the data rows in the cleaned file, not counting header rows.",[25,384,385,388],{},[28,386,387],{},"Keep the original."," Store the raw file and the cleaned file in separate folders, labeled with the import date.",[14,390,392],{"id":391},"the-full-path-from-raw-data-to-import","The Full Path From Raw Data to Import",[199,394,395,398,401,404,407,410,413],{},[25,396,397],{},"Download the import template from your accounting system.",[25,399,400],{},"Match column names, order, dates, and numbers in a spreadsheet.",[25,402,403],{},"Export to CSV.",[25,405,406],{},"Clean with CSV Cleaner.",[25,408,409],{},"Split with CSV Splitter if the file passes the row limit.",[25,411,412],{},"Import ten rows as a test.",[25,414,415],{},"Import the rest, then reconcile totals and row counts.",[14,417,419],{"id":418},"frequently-asked-questions","Frequently Asked Questions",[421,422,424],"h3",{"id":423},"does-csv-cleaner-change-date-or-number-formats","Does CSV Cleaner change date or number formats?",[10,426,427],{},"No. CSV Cleaner has four options: trim spaces, remove blank rows, remove duplicate rows, and remove empty columns. Fix date and number formats in a spreadsheet before you export.",[421,429,431],{"id":430},"does-each-split-file-keep-the-header-row","Does each split file keep the header row?",[10,433,434,435,437],{},"It can. Turn on ",[28,436,319],{}," in CSV Splitter, and every part opens as a standalone CSV file.",[421,439,441],{"id":440},"what-is-the-difference-between-by-row-count-and-by-file-count","What is the difference between By row count and By file count?",[10,443,444,446,447,343],{},[28,445,336],{}," produces parts with a fixed number of rows, such as 100 rows per file. ",[28,448,342],{},[421,450,452],{"id":451},"does-my-financial-data-upload-to-a-server","Does my financial data upload to a server?",[10,454,455],{},"No. CSV Cleaner and CSV Splitter run in your browser, and no data goes to a server.",[421,457,459],{"id":458},"which-csv-format-is-correct-for-my-accounting-system","Which CSV format is correct for my accounting system?",[10,461,462],{},"The one that matches the target system's import template. Each system sets its own rules for column names, dates, and numbers, so your system's template is the reference.",{"title":177,"searchDepth":464,"depth":464,"links":465},2,[466,467,468,469,470,471,472,473,474],{"id":16,"depth":464,"text":17},{"id":70,"depth":464,"text":71},{"id":77,"depth":464,"text":78},{"id":187,"depth":464,"text":188},{"id":263,"depth":464,"text":264},{"id":292,"depth":464,"text":293},{"id":358,"depth":464,"text":359},{"id":391,"depth":464,"text":392},{"id":418,"depth":464,"text":419,"children":475},[476,478,479,480,481],{"id":423,"depth":477,"text":424},3,{"id":430,"depth":477,"text":431},{"id":440,"depth":477,"text":441},{"id":451,"depth":477,"text":452},{"id":458,"depth":477,"text":459},"\u002Fimg\u002Fblog\u002Fformat-data-accounting-import.jpg","Format CSV data for accounting system imports. Clean blank rows and duplicates, fix dates and numbers, and split large files to fit row limits.","md",{},true,"\u002Fblog\u002Fformatting-data-for-accounting-system-imports","2026-11-06",{"title":5,"description":483},"blog\u002Fformatting-data-for-accounting-system-imports","format-data-accounting-import","1YP4IEkx1flqkDt0e3A5d7yoOVq86fJkruD-zhIOIXI",[494,910,1198],{"id":495,"title":496,"body":497,"coverImage":901,"description":902,"extension":484,"meta":903,"navigation":486,"path":904,"publishedAt":905,"relatedToolPath":195,"seo":906,"stem":907,"translationKey":908,"__hash__":909},"blog_en\u002Fblog\u002Fhow-to-remove-duplicate-rows-from-csv.md","How to Remove Duplicate Rows From a CSV File",{"type":7,"value":498,"toc":884},[499,502,506,509,523,527,533,537,542,566,569,573,576,579,585,588,594,597,601,604,624,639,653,690,697,701,704,710,713,717,790,794,797,820,824,846,848,852,855,859,862,866,873,877,880],[10,500,501],{},"You merge several customer exports, and one person appears three times. Sales totals swell, promotional emails go out twice, and a database import stops because the same key shows up twice. You can remove duplicate rows from a CSV file in a few clicks, without Excel and without uploading the file.",[14,503,505],{"id":504},"why-duplicate-data-appears","Why Duplicate Data Appears",[10,507,508],{},"Duplicates rarely come from one big mistake. The cause is usually mundane:",[22,510,511,514,517,520],{},[25,512,513],{},"You merged several export files that overlap.",[25,515,516],{},"An export ran twice, or a failed import was retried.",[25,518,519],{},"Someone entered the same record twice.",[25,521,522],{},"An older system logged one transaction as several rows.",[14,524,526],{"id":525},"find-the-duplicates-before-deleting","Find the Duplicates Before Deleting",[10,528,529,530,532],{},"Before you clean, confirm the duplicates exist. ",[193,531,288],{"href":287}," opens the file in your browser, and its search box filters rows across every column. Type one email or one order number. If two or more rows appear, that record is logged more than once.",[14,534,536],{"id":535},"remove-duplicate-rows-with-csv-cleaner","Remove Duplicate Rows With CSV Cleaner",[10,538,539,541],{},[193,540,196],{"href":195}," on Kertaas removes duplicate rows right in your browser.",[199,543,544,548,550,555,560],{},[25,545,203,546,206],{},[193,547,196],{"href":195},[25,549,209],{},[25,551,552,553,206],{},"Tick ",[28,554,222],{},[25,556,552,557,559],{},[28,558,215],{}," to catch duplicates that differ by a space.",[25,561,228,562,232,564,236],{},[28,563,231],{},[28,565,235],{},[10,567,568],{},"Each option shows its effect as soon as you switch it on. The header stays as the first row, and the cleaning options apply to the data rows below it. Your browser processes the file on your device, so nothing uploads to a server.",[14,570,572],{"id":571},"how-duplicate-rows-are-detected","How Duplicate Rows Are Detected",[10,574,575],{},"CSV Cleaner treats a row as a duplicate when all its cells match a row that appeared earlier. The first copy stays and later copies go.",[10,577,578],{},"In the file below, three of the four rows are identical:",[169,580,583],{"className":581,"code":582,"language":174},[172],"Email,Name,City\nbudi@example.com,Budi,Jakarta\nsiti@example.com,Siti,Bandung\nbudi@example.com,Budi,Jakarta\nbudi@example.com,Budi,Jakarta\n",[164,584,582],{"__ignoreMap":177},[10,586,587],{},"The result has two data rows:",[169,589,592],{"className":590,"code":591,"language":174},[172],"Email,Name,City\nbudi@example.com,Budi,Jakarta\nsiti@example.com,Siti,Bandung\n",[164,593,591],{"__ignoreMap":177},[10,595,596],{},"This rule has a consequence. A difference of any size in one cell, such as spelling, a date format, or a trailing space, stops two rows from counting as duplicates. Turn on the trim spaces option together with remove duplicates, then check the row count in the result. If the count does not drop as far as you expected, run the output through CSV Cleaner a second time.",[14,598,600],{"id":599},"remove-duplicates-based-on-one-column","Remove Duplicates Based on One Column",[10,602,603],{},"Sometimes two rows count as duplicates even when not every cell matches. The same email might appear with two spellings of a name. CSV Cleaner matches whole rows, so this case needs another tool.",[10,605,606,609,610,216,613,616,617,619,620,623],{},[28,607,608],{},"Excel."," Open the CSV with ",[28,611,612],{},"Data",[28,614,615],{},"From Text\u002FCSV",", then select all the data. On the ",[28,618,612],{}," tab, click ",[28,621,622],{},"Remove Duplicates"," and tick only the Email column.",[10,625,626,629,630,216,632,216,635,638],{},[28,627,628],{},"Google Sheets."," Import the file, then choose ",[28,631,612],{},[28,633,634],{},"Data cleanup",[28,636,637],{},"Remove duplicates",", and pick the reference column.",[10,640,641,644,645,648,649,652],{},[28,642,643],{},"Python (pandas)."," The ",[164,646,647],{},"subset"," parameter sets the reference column, and ",[164,650,651],{},"keep=\"first\""," retains the first row:",[169,654,658],{"className":655,"code":656,"language":657,"meta":177,"style":177},"language-python shiki shiki-themes github-light github-dark","import pandas as pd\n\ndf = pd.read_csv(\"data.csv\", dtype=str)\ndf = df.drop_duplicates(subset=[\"Email\"], keep=\"first\")\ndf.to_csv(\"data_clean.csv\", index=False)\n","python",[164,659,660,668,673,678,684],{"__ignoreMap":177},[661,662,665],"span",{"class":663,"line":664},"line",1,[661,666,667],{},"import pandas as pd\n",[661,669,670],{"class":663,"line":464},[661,671,672],{"emptyLinePlaceholder":486},"\n",[661,674,675],{"class":663,"line":477},[661,676,677],{},"df = pd.read_csv(\"data.csv\", dtype=str)\n",[661,679,681],{"class":663,"line":680},4,[661,682,683],{},"df = df.drop_duplicates(subset=[\"Email\"], keep=\"first\")\n",[661,685,687],{"class":663,"line":686},5,[661,688,689],{},"df.to_csv(\"data_clean.csv\", index=False)\n",[10,691,692,693,696],{},"The ",[164,694,695],{},"dtype=str"," option keeps leading zeros in values such as the zip code 00123.",[14,698,700],{"id":699},"remove-duplicates-in-the-terminal","Remove Duplicates in the Terminal",[10,702,703],{},"For exact duplicates on Mac and Linux, one command is enough:",[169,705,708],{"className":706,"code":707,"language":174},[172],"awk '!seen[$0]++' data.csv > data_clean.csv\n",[164,709,707],{"__ignoreMap":177},[10,711,712],{},"This command keeps the first occurrence of each line and preserves the original order. It compares whole lines of text, so only identical lines disappear.",[14,714,716],{"id":715},"which-method-fits","Which Method Fits",[83,718,719,732],{},[86,720,721],{},[89,722,723,726,729],{},[92,724,725],{},"Method",[92,727,728],{},"Best for",[92,730,731],{},"Note",[102,733,734,744,755,766,777],{},[89,735,736,738,741],{},[107,737,196],{},[107,739,740],{},"Exact duplicates, no code",[107,742,743],{},"Matches whole rows",[89,745,746,749,752],{},[107,747,748],{},"Excel",[107,750,751],{},"Duplicates by specific columns",[107,753,754],{},"Opening a CSV can change number formats",[89,756,757,760,763],{},[107,758,759],{},"Google Sheets",[107,761,762],{},"Duplicates by column, shared work",[107,764,765],{},"File uploads to your Google account",[89,767,768,771,774],{},[107,769,770],{},"Python (pandas)",[107,772,773],{},"Large files, repeated jobs",[107,775,776],{},"Needs Python installed",[89,778,779,784,787],{},[107,780,781],{},[164,782,783],{},"awk",[107,785,786],{},"Exact duplicates in a terminal",[107,788,789],{},"Mac and Linux only",[14,791,793],{"id":792},"check-the-result-after-deleting","Check the Result After Deleting",[10,795,796],{},"Three checks prevent deleting the wrong data:",[199,798,799,805,814],{},[25,800,801,804],{},[28,802,803],{},"Row count."," Compare the count before and after. The difference should match the number of duplicates you expected.",[25,806,807,810,811,813],{},[28,808,809],{},"Sample records."," Search a few emails or order numbers that were duplicated in ",[193,812,288],{"href":287},". Confirm each one has a single row.",[25,815,816,819],{},[28,817,818],{},"Original file."," Keep the original file somewhere separate until you trust the result.",[14,821,823],{"id":822},"after-the-duplicates-are-gone","After the Duplicates Are Gone",[22,825,826,834,839],{},[25,827,828,829,833],{},"Your data comes from several files: merge them first with ",[193,830,832],{"href":831},"\u002Foffice-tools\u002Fspreadsheet\u002Fcsv-merger","CSV Merger",", then remove duplicates in one pass. Duplicates across files disappear too.",[25,835,836,837,206],{},"The file is too large to open: split it with ",[193,838,300],{"href":299},[25,840,841,842,206],{},"A colleague needs an Excel file: convert it with ",[193,843,845],{"href":844},"\u002Foffice-tools\u002Fspreadsheet\u002Fcsv-to-xlsx","CSV to XLSX",[14,847,419],{"id":418},[421,849,851],{"id":850},"which-row-stays-when-duplicates-are-removed","Which row stays when duplicates are removed?",[10,853,854],{},"CSV Cleaner keeps the first copy and removes the copies that appear after it.",[421,856,858],{"id":857},"does-the-cleaner-remove-my-header-row","Does the cleaner remove my header row?",[10,860,861],{},"No. The header stays as the first row. The cleaning options apply to the data rows below it.",[421,863,865],{"id":864},"can-i-remove-duplicates-based-on-a-single-column","Can I remove duplicates based on a single column?",[10,867,868,869,872],{},"Not in CSV Cleaner, because it matches every cell in a row. For a single reference column, use Remove Duplicates in Excel or Google Sheets, or ",[164,870,871],{},"drop_duplicates"," in pandas.",[421,874,876],{"id":875},"does-my-file-upload-when-i-use-csv-cleaner","Does my file upload when I use CSV Cleaner?",[10,878,879],{},"No. Everything runs in your browser.",[881,882,883],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":177,"searchDepth":464,"depth":464,"links":885},[886,887,888,889,890,891,892,893,894,895],{"id":504,"depth":464,"text":505},{"id":525,"depth":464,"text":526},{"id":535,"depth":464,"text":536},{"id":571,"depth":464,"text":572},{"id":599,"depth":464,"text":600},{"id":699,"depth":464,"text":700},{"id":715,"depth":464,"text":716},{"id":792,"depth":464,"text":793},{"id":822,"depth":464,"text":823},{"id":418,"depth":464,"text":419,"children":896},[897,898,899,900],{"id":850,"depth":477,"text":851},{"id":857,"depth":477,"text":858},{"id":864,"depth":477,"text":865},{"id":875,"depth":477,"text":876},"\u002Fimg\u002Fblog\u002Fremove-duplicate-row-csv.jpg","Remove duplicate rows from a CSV file online in your browser, or with Excel, Google Sheets, and Python. Learn how duplicates are detected and what to check afterward.",{},"\u002Fblog\u002Fhow-to-remove-duplicate-rows-from-csv","2026-10-23",{"title":496,"description":902},"blog\u002Fhow-to-remove-duplicate-rows-from-csv","remove-duplicates-csv","yDrmH2grGz6pLj1lI7TQVF1fGuXldqhud2hdphaUj5Q",{"id":911,"title":912,"body":913,"coverImage":1189,"description":1190,"extension":484,"meta":1191,"navigation":486,"path":1192,"publishedAt":1193,"relatedToolPath":195,"seo":1194,"stem":1195,"translationKey":1196,"__hash__":1197},"blog_en\u002Fblog\u002Fhow-to-clean-messy-csv-data.md","How to Clean Messy CSV Data Online",{"type":7,"value":914,"toc":1175},[915,918,922,925,950,954,959,977,980,984,987,993,996,1002,1006,1008,1011,1015,1018,1089,1092,1096,1099,1121,1125,1128,1155,1157,1161,1164,1166,1168,1172],[10,916,917],{},"You export data from an old system, or merge several sources, and the CSV arrives with blank rows, repeated records, and stray spaces everywhere. The database import fails, or it succeeds and the same customer shows up twice. You can clean CSV data online in a few clicks, and the file never leaves your browser.",[14,919,921],{"id":920},"common-problems-in-messy-csv-data","Common Problems in Messy CSV Data",[10,923,924],{},"Four problems show up most often:",[22,926,927,933,938,944],{},[25,928,929,932],{},[28,930,931],{},"Spaces at the start or end of a cell."," \"John\" and \"John \" look identical, but a computer reads them as two different values when you search, group, or match data.",[25,934,935,937],{},[28,936,54],{}," Merging several sources leaves them behind. They distort row counts and sorting.",[25,939,940,943],{},[28,941,942],{},"Duplicate rows."," The same record appears twice or more, so totals and reports inflate.",[25,945,946,949],{},[28,947,948],{},"Empty columns."," Extra commas at the end of rows create columns with no content.",[14,951,953],{"id":952},"clean-csv-data-online-with-csv-cleaner","Clean CSV Data Online With CSV Cleaner",[10,955,956,958],{},[193,957,196],{"href":195}," on Kertaas handles all four problems in one pass.",[199,960,961,965,967,970],{},[25,962,203,963,206],{},[193,964,196],{"href":195},[25,966,209],{},[25,968,969],{},"Tick the options you need: trim spaces in each cell, remove blank rows, remove duplicate rows, remove empty columns.",[25,971,972,973,976],{},"Copy the result or download it as a ",[164,974,975],{},".csv"," file.",[10,978,979],{},"You can combine all four options, and each one shows its effect as soon as you switch it on. Your browser processes the file on your device, so nothing goes to a server. The header stays as the first row, and the cleaning options apply to the data rows below it.",[14,981,983],{"id":982},"before-and-after-example","Before and After Example",[10,985,986],{},"The raw data has extra commas at the end of each row, one blank row, and one repeated row. The name \"John Smith\" also carries a trailing space:",[169,988,991],{"className":989,"code":990,"language":174},[172],"Name,City,Phone,\nJohn Smith ,London,07123456789,\n,,,\nMary Jones,Leeds,07234567890,\nJohn Smith ,London,07123456789,\n",[164,992,990],{"__ignoreMap":177},[10,994,995],{},"With all four options on, the result is:",[169,997,1000],{"className":998,"code":999,"language":174},[172],"Name,City,Phone\nJohn Smith,London,07123456789\nMary Jones,Leeds,07234567890\n",[164,1001,999],{"__ignoreMap":177},[14,1003,1005],{"id":1004},"how-duplicate-removal-works","How Duplicate Removal Works",[10,1007,575],{},[10,1009,1010],{},"This rule has one consequence: two rows that differ only by a space are not identical. Turn on the trim spaces option together with remove duplicates, then watch the effect on the row count.",[14,1012,1014],{"id":1013},"alternative-clean-in-a-spreadsheet","Alternative: Clean in a Spreadsheet",[10,1016,1017],{},"If you already have Excel or Google Sheets, the built-in features help too:",[83,1019,1020,1031],{},[86,1021,1022],{},[89,1023,1024,1027,1029],{},[92,1025,1026],{},"Problem",[92,1028,748],{},[92,1030,759],{},[102,1032,1033,1053,1072],{},[89,1034,1035,1038,1044],{},[107,1036,1037],{},"Extra spaces",[107,1039,1040,1043],{},[164,1041,1042],{},"TRIM"," function",[107,1045,1046,216,1048,216,1050],{},[28,1047,612],{},[28,1049,634],{},[28,1051,1052],{},"Trim whitespace",[89,1054,1055,1058,1064],{},[107,1056,1057],{},"Duplicates",[107,1059,1060,216,1062],{},[28,1061,612],{},[28,1063,622],{},[107,1065,1066,216,1068,216,1070],{},[28,1067,612],{},[28,1069,634],{},[28,1071,637],{},[89,1073,1074,1077,1086],{},[107,1075,1076],{},"Blank rows",[107,1078,1079,216,1082,1085],{},[28,1080,1081],{},"Go To Special",[28,1083,1084],{},"Blanks",", then delete rows",[107,1087,1088],{},"Filter the column, then delete blank rows",[10,1090,1091],{},"One note on Excel: when it opens a CSV file, it changes number formats and can drop the leading zeros from zip codes or phone numbers. If your data has columns like that, clean it with CSV Cleaner and check the result in CSV Viewer so the file never passes through Excel.",[14,1093,1095],{"id":1094},"check-the-result-before-importing","Check the Result Before Importing",[10,1097,1098],{},"Three checks prevent surprises in the destination system:",[199,1100,1101,1106,1115],{},[25,1102,1103,1105],{},[28,1104,803],{}," Compare the count before and after. The difference should match the number of blank and duplicate rows you expected.",[25,1107,1108,1111,1112,1114],{},[28,1109,1110],{},"Key columns."," Confirm that phone numbers and zip codes still have their leading zeros. Open the result in ",[193,1113,288],{"href":287},", not in Excel.",[25,1116,1117,1120],{},[28,1118,1119],{},"Characters."," Look for names with accented letters. If you see \"Ã©\", the file encoding has a problem.",[14,1122,1124],{"id":1123},"after-cleaning-convert-and-format-your-data","After Cleaning: Convert and Format Your Data",[10,1126,1127],{},"Clean data is ready for the next step:",[22,1129,1130,1135,1139,1143],{},[25,1131,828,1132,1134],{},[193,1133,832],{"href":831},", then clean everything in one pass. Duplicates across files disappear too.",[25,1136,836,1137,206],{},[193,1138,300],{"href":299},[25,1140,841,1141,206],{},[193,1142,845],{"href":844},[25,1144,1145,1146,1150,1151,206],{},"An app or API needs JSON: convert it with ",[193,1147,1149],{"href":1148},"\u002Foffice-tools\u002Fdata\u002Fcsv-to-json","CSV to JSON",", then indent and validate the result with ",[193,1152,1154],{"href":1153},"\u002Foffice-tools\u002Fdata\u002Fdata-formatter","Data Formatter",[14,1156,419],{"id":418},[421,1158,1160],{"id":1159},"is-it-safe-to-clean-csv-data-online","Is it safe to clean CSV data online?",[10,1162,1163],{},"CSV Cleaner processes the file in your browser. The file is not uploaded to any server.",[421,1165,858],{"id":857},[10,1167,861],{},[421,1169,1171],{"id":1170},"can-i-use-several-cleaning-options-at-once","Can I use several cleaning options at once?",[10,1173,1174],{},"Yes. Trim spaces, remove blank rows, remove duplicate rows, and remove empty columns all work together.",{"title":177,"searchDepth":464,"depth":464,"links":1176},[1177,1178,1179,1180,1181,1182,1183,1184],{"id":920,"depth":464,"text":921},{"id":952,"depth":464,"text":953},{"id":982,"depth":464,"text":983},{"id":1004,"depth":464,"text":1005},{"id":1013,"depth":464,"text":1014},{"id":1094,"depth":464,"text":1095},{"id":1123,"depth":464,"text":1124},{"id":418,"depth":464,"text":419,"children":1185},[1186,1187,1188],{"id":1159,"depth":477,"text":1160},{"id":857,"depth":477,"text":858},{"id":1170,"depth":477,"text":1171},"\u002Fimg\u002Fblog\u002Fcleaning-messy-csv-data.jpg","Clean CSV data online in your browser, remove blank rows, duplicates, empty columns, and extra spaces. Get formatted data that is ready to import.",{},"\u002Fblog\u002Fhow-to-clean-messy-csv-data","2026-10-16",{"title":912,"description":1190},"blog\u002Fhow-to-clean-messy-csv-data","clean-messy-csv-data","a0dvULVixvIlctAmGlEXAyP5fet-9XZuYFZrhgZCyBQ",{"id":1199,"title":1200,"body":1201,"coverImage":1553,"description":1554,"extension":484,"meta":1555,"navigation":486,"path":1556,"publishedAt":1557,"relatedToolPath":287,"seo":1558,"stem":1559,"translationKey":1560,"__hash__":1561},"blog_en\u002Fblog\u002Fhow-to-export-data-from-google-sheets-to-csv.md","How to Export Data From Google Sheets to CSV",{"type":7,"value":1202,"toc":1537},[1203,1206,1210,1231,1234,1238,1244,1250,1266,1269,1273,1276,1303,1306,1310,1313,1374,1377,1381,1387,1402,1405,1409,1420,1425,1441,1448,1452,1458,1464,1470,1483,1494,1496,1500,1509,1513,1516,1520,1523,1527,1530,1534],[10,1204,1205],{},"Your accounting system, online store, or database asks for a CSV file, and your data lives in Google Sheets. You can export data from Google Sheets to CSV in three clicks. The part to watch is what travels with the export and what gets left behind.",[14,1207,1209],{"id":1208},"how-to-export-google-sheets-to-csv","How to Export Google Sheets to CSV",[199,1211,1212,1215,1228],{},[25,1213,1214],{},"Open the spreadsheet in your browser and click the tab of the sheet you want to export.",[25,1216,1217,1218,1221,1222,1221,1225,206],{},"Choose ",[28,1219,1220],{},"File",", then ",[28,1223,1224],{},"Download",[28,1226,1227],{},"Comma Separated Values (.csv)",[25,1229,1230],{},"Your browser saves the file in your downloads folder. The file name is usually the spreadsheet name joined with the sheet name.",[10,1232,1233],{},"Google Sheets exports only the active sheet. If your spreadsheet has five tabs, you get one CSV file from one tab.",[14,1235,1237],{"id":1236},"export-several-sheets-or-part-of-your-data","Export Several Sheets or Part of Your Data",[10,1239,1240,1243],{},[28,1241,1242],{},"Several sheets."," Repeat the steps above for each tab. Every tab produces its own CSV file.",[10,1245,1246,1249],{},[28,1247,1248],{},"Part of your data."," Google Sheets does not export a selected range. A workaround exists:",[199,1251,1252,1255,1258],{},[25,1253,1254],{},"Select the cells you need and copy them.",[25,1256,1257],{},"Create a new spreadsheet and paste the copied cells into the first sheet.",[25,1259,1217,1260,216,1262,216,1264,206],{},[28,1261,1220],{},[28,1263,1224],{},[28,1265,1227],{},[10,1267,1268],{},"Check the original sheet for hidden rows and columns before you export, so no data travels along without your knowing.",[14,1270,1272],{"id":1271},"publish-a-sheet-as-a-csv-link","Publish a Sheet as a CSV Link",[10,1274,1275],{},"Developers often need a link that always points to the latest data. Google Sheets can publish one sheet as CSV.",[199,1277,1278,1288,1291,1297],{},[25,1279,1217,1280,1221,1282,1221,1285,206],{},[28,1281,1220],{},[28,1283,1284],{},"Share",[28,1286,1287],{},"Publish to web",[25,1289,1290],{},"Pick the sheet you want to publish.",[25,1292,1293,1294,206],{},"Change the format from web page to ",[28,1295,1296],{},"Comma-separated values (.csv)",[25,1298,228,1299,1302],{},[28,1300,1301],{},"Publish"," and copy the link.",[10,1304,1305],{},"Anyone who holds the link can read the data, even without a Google account. Do not use this route for personal or confidential data. The link also follows changes in your sheet unless you turn off the automatic republish option.",[14,1307,1309],{"id":1308},"what-carries-over-and-what-does-not","What Carries Over and What Does Not",[10,1311,1312],{},"CSV stores text only. Here is the comparison:",[83,1314,1315,1325],{},[86,1316,1317],{},[89,1318,1319,1322],{},[92,1320,1321],{},"In Google Sheets",[92,1323,1324],{},"In the CSV file",[102,1326,1327,1335,1343,1350,1358,1366],{},[89,1328,1329,1332],{},[107,1330,1331],{},"Formulas",[107,1333,1334],{},"The result values only",[89,1336,1337,1340],{},[107,1338,1339],{},"Colors, bold text, column widths",[107,1341,1342],{},"Gone",[89,1344,1345,1348],{},[107,1346,1347],{},"Images and charts",[107,1349,1342],{},[89,1351,1352,1355],{},[107,1353,1354],{},"Other sheets in the same spreadsheet",[107,1356,1357],{},"Not included",[89,1359,1360,1363],{},[107,1361,1362],{},"Text",[107,1364,1365],{},"Saved with UTF-8 encoding",[89,1367,1368,1371],{},[107,1369,1370],{},"Separator between values",[107,1372,1373],{},"Comma",[10,1375,1376],{},"Date and number values export as they appear in the cell, including currency symbols and the date format you chose. Open the result and check the date and currency columns before you send the file.",[14,1378,1380],{"id":1379},"check-the-export-with-csv-viewer","Check the Export With CSV Viewer",[10,1382,1383,1384,1386],{},"Before you upload the CSV to another system, confirm the contents. ",[193,1385,288],{"href":287}," on Kertaas opens the file in your browser without passing through Excel.",[199,1388,1389,1393,1396,1399],{},[25,1390,203,1391,206],{},[193,1392,288],{"href":287},[25,1394,1395],{},"Drag the CSV file into the upload area, or click to choose a file.",[25,1397,1398],{},"The data appears as a table.",[25,1400,1401],{},"Type a keyword in the search box to filter rows across every column.",[10,1403,1404],{},"Search for a few values you know exist in the source sheet, such as a name or an order number, and confirm the rows are complete. Your browser reads the file on your device, so nothing uploads. CSV Viewer displays and searches data only, so you cannot edit the contents.",[14,1406,1408],{"id":1407},"convert-the-csv-to-xlsx-when-you-need-an-excel-file","Convert the CSV to XLSX When You Need an Excel File",[10,1410,1411,1412,216,1414,216,1416,1419],{},"If you are still in Google Sheets and need an Excel file, choose ",[28,1413,1220],{},[28,1415,1224],{},[28,1417,1418],{},"Microsoft Excel (.xlsx)",". You do not need to export a CSV first.",[10,1421,1422,1424],{},[193,1423,845],{"href":844}," helps when you only have the CSV file, such as an export a colleague sent you.",[199,1426,1427,1431,1433,1436],{},[25,1428,203,1429,206],{},[193,1430,845],{"href":844},[25,1432,310],{},[25,1434,1435],{},"Check the preview that appears.",[25,1437,228,1438,206],{},[28,1439,1440],{},"Download .xlsx",[10,1442,1443,1444,1447],{},"The result is a standard ",[164,1445,1446],{},".xlsx"," file that opens in Excel, Google Sheets, and LibreOffice Calc. The tool writes each value as plain text straight from the CSV. Excel usually still detects numbers, but custom date formats may need reformatting in Excel. A very large CSV, with hundreds of thousands of rows, slows the conversion because your browser does the work.",[14,1449,1451],{"id":1450},"common-problems","Common Problems",[10,1453,1454,1457],{},[28,1455,1456],{},"Only one sheet exported."," Google Sheets exports the active tab. Export each tab separately.",[10,1459,1460,1463],{},[28,1461,1462],{},"Formulas turned into numbers."," CSV does not store formulas. Keep a copy of the original spreadsheet if you still need the formulas.",[10,1465,1466,1469],{},[28,1467,1468],{},"Dates or currency look different."," Values export as they appear in the cell. Change the column format in Google Sheets before you export.",[10,1471,1472,1475,1476,1479,1480,1482],{},[28,1473,1474],{},"Leading zeros disappeared."," Zip codes and phone numbers lose their zeros when the cell uses a plain number format. Switch the column to ",[28,1477,1478],{},"Plain text"," in Google Sheets before you enter data. In Excel, import that column with the ",[28,1481,1362],{}," type.",[10,1484,1485,1488,1489,1221,1491,1493],{},[28,1486,1487],{},"The file opens in one column or shows broken letters in Excel."," The data is intact, but Excel uses a different separator or encoding. Open the file through ",[28,1490,612],{},[28,1492,615],{},", and pick the right separator and UTF-8 encoding.",[14,1495,419],{"id":418},[421,1497,1499],{"id":1498},"how-do-i-export-google-sheets-to-csv","How do I export Google Sheets to CSV?",[10,1501,1502,1503,216,1505,216,1507,206],{},"Open the tab you want to export, then choose ",[28,1504,1220],{},[28,1506,1224],{},[28,1508,1227],{},[421,1510,1512],{"id":1511},"can-i-export-all-sheets-at-once","Can I export all sheets at once?",[10,1514,1515],{},"Not into one CSV file. Google Sheets exports one tab per file, so repeat the steps for each tab.",[421,1517,1519],{"id":1518},"do-formulas-export-too","Do formulas export too?",[10,1521,1522],{},"No. CSV stores only the values that formulas produce.",[421,1524,1526],{"id":1525},"can-csv-viewer-edit-data","Can CSV Viewer edit data?",[10,1528,1529],{},"No. CSV Viewer shows data as a table and filters rows through search. To edit, change the data in Google Sheets and export again.",[421,1531,1533],{"id":1532},"does-my-file-upload-when-i-use-csv-viewer-or-csv-to-xlsx","Does my file upload when I use CSV Viewer or CSV to XLSX?",[10,1535,1536],{},"No. Your browser reads and converts the file, and no data goes to a server.",{"title":177,"searchDepth":464,"depth":464,"links":1538},[1539,1540,1541,1542,1543,1544,1545,1546],{"id":1208,"depth":464,"text":1209},{"id":1236,"depth":464,"text":1237},{"id":1271,"depth":464,"text":1272},{"id":1308,"depth":464,"text":1309},{"id":1379,"depth":464,"text":1380},{"id":1407,"depth":464,"text":1408},{"id":1450,"depth":464,"text":1451},{"id":418,"depth":464,"text":419,"children":1547},[1548,1549,1550,1551,1552],{"id":1498,"depth":477,"text":1499},{"id":1511,"depth":477,"text":1512},{"id":1518,"depth":477,"text":1519},{"id":1525,"depth":477,"text":1526},{"id":1532,"depth":477,"text":1533},"\u002Fimg\u002Fblog\u002Fexport-google-sheets-to-csv.jpg","Export data from Google Sheets to CSV. Download one sheet, export a range, or publish a CSV link. Then check the file and convert it to XLSX if needed.",{},"\u002Fblog\u002Fhow-to-export-data-from-google-sheets-to-csv","2026-11-04",{"title":1200,"description":1554},"blog\u002Fhow-to-export-data-from-google-sheets-to-csv","export-google-sheets-to-csv","1kvHAGJVld5KThDzzOt6SJqHP_GMSPb1wU_freH9zRE",1791776472284]