---
title: "Kevin Xiao (@kevinxiao) | Hashnode"
description: "前端/全栈 10 年，现在专做小而好用的开发者工具。 Building small dev tools in public · PatchRow: let users fix their CSV before it hits your API"
url: "https://hashnode.com/@kevinxiao"
---

@kevinxiao

# Kevin Xiao

@kevinxiao · Joined November 2026

### [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

7 min read · [kevinxiao.hashnode.dev](https://kevinxiao.hashnode.dev/german-excel-csv-breaks-your-react-importer-semicolons-decimal-commas-and-quoted-line-breaks?utm_source=hashnode&utm_medium=feed)

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