Csv with semicolon-comma wrong parsing #2239
Comments
|
The overarching issue is locales (in some locales, commas are treated as decimal points and semicolons are the field separators). Excel's general backdoor for the delimiter is the We'd accept a PR that adds an override. The change would be in if(str.slice(0,4) == "sep=") {
// If the line ends in \r\n
if(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {
sep = str.charAt(4); str = str.slice(7);
}
// If line ends in \r OR \n
else if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {
sep = str.charAt(4); str = str.slice(6);
}
else sep = guess_sep(str.slice(0,1024));
}
+ else if(opts && opts.FS) sep = opts.FS;
else sep = guess_sep(str.slice(0,1024));and the end code would be X.read(e.target.result, { type: 'string', FS: ";" }) |
|
@SheetJSDev Can I take this issue? |
We have done exactly this workaround on the code side (reading the first line and finding out the separator). I thought it could be done automatically. |
|
The current behavior is consistent with Excel. Consider the original sample file: In the If you are using a regional setting with ";" as the list separator and "," as the decimal symbol, then you will get the parse you expect. In windows 7 these settings can be found in "Control Panel" > "Clock, Language, and Region" > "Region and Language" > "Additional Settings". en_US has the following settings: Note: Excel's backdoor for controlling the list separator is the aforementioned |
|
#malek`` |



Hi, I'm trying to read a CSV file like this (
;,delimiters):What happens: semicolon from the first line does not become the main separator, the comma from the second line does and it breaks the file's logic.
Code that reads:
Result
I have seen your comment about standard delimiters, but normally semicolon is a basic one (#1087 (comment))
Probably I am doing something wrong? Thanks
The text was updated successfully, but these errors were encountered: