---
title: "Discussion on \"German Excel CSV breaks your React importer: semicolons, decimal commas, and quoted line breaks\" | Hashnode"
description: "Discussion on \"German Excel CSV breaks your React importer: semicolons, decimal commas, and quoted line breaks\". Originally published on DEV.\nA first CSV import often looks like this:\nconst text = await file.text();\nconst rows = text.trim().split('\\n').map((line) => line.split(','));\n\nIt works on the Google Shee"
url: "https://hashnode.com/posts/german-excel-csv-breaks-your-react-importer-semicolons-decimal-commas-and-quoted-line-breaks/6af91d0994302a6bfb3ae333"
---

[Feed](https://hashnode.com/feed) /

Discussion

# [German Excel CSV breaks your React importer: semicolons, decimal commas, and quoted line breaks](https://kevinxiao.hashnode.dev/german-excel-csv-breaks-your-react-importer-semicolons-decimal-commas-and-quoted-line-breaks?utm_source=hashnode&utm_medium=feed)

Originally published on DEV. A first CSV import often looks like this: const text = await file.text(); const rows = text.trim().split('\\n').map((line) => line.split(',')); It works on the Google Shee

2h ago · 7 min read · kevinxiao.hashnode.dev  
Read the article

-   [#react](https://hashnode.com/tag/react)
-   [#typescript](https://hashnode.com/tag/typescript)
-   [#javascript](https://hashnode.com/tag/javascript)
-   [#csv](https://hashnode.com/tag/csv)

## Written by

[Kevin Xiao](https://hashnode.com/@kevinxiao)

@kevinxiao

  
[View profile](https://hashnode.com/@kevinxiao)

前端/全栈 10 年，现在专做小而好用的开发者工具。 Building small dev tools in public · PatchRow: let users fix their CSV before it hits your API

## Responses 1

Markdown supported · ⌘↵ to post

[QRiQRa Team](https://hashnode.com/@qriqra)

[47m ago](https://hashnode.com/posts/german-excel-csv-breaks-your-react-importer-semicolons-decimal-commas-and-quoted-line-breaks/6af91d0994302a6bfb3ae333/comment/6af9368c395ea94396ac6c9b)

The order note in suggestNumber is the kind of detail that saves a support ticket: stripping US thousands separators before treating a lone comma as a decimal. One case we would add to the tests is a value like "1.234,56", where the period is the thousands separator and the comma is the decimal. Neither branch catches it as written, so it falls through as not a number, which is safe, but the suggestion step could offer "1234.56" when the delimiter detection already points to a semicolon file. Flagging ambiguous dates instead of guessing is a rule we wish more importers followed.
