forked from sheetjs/sheetjs
Add option to force quotes around values in when exporting to csv (#2009)
This commit is contained in:
parent
c615f85034
commit
486f35b4cc
17
README.md
17
README.md
@ -2140,14 +2140,15 @@ For the example sheet:
|
||||
As an alternative to the `writeFile` CSV type, `XLSX.utils.sheet_to_csv` also
|
||||
produces CSV output. The function takes an options argument:
|
||||
|
||||
| Option Name | Default | Description |
|
||||
| :---------- | :------: | :-------------------------------------------------- |
|
||||
|`FS` | `","` | "Field Separator" delimiter between fields |
|
||||
|`RS` | `"\n"` | "Record Separator" delimiter between rows |
|
||||
|`dateNF` | FMT 14 | Use specified date format in string output |
|
||||
|`strip` | false | Remove trailing field separators in each record ** |
|
||||
|`blankrows` | true | Include blank lines in the CSV output |
|
||||
|`skipHidden` | false | Skips hidden rows/columns in the CSV output |
|
||||
| Option Name | Default | Description |
|
||||
| :----------- | :------: | :-------------------------------------------------- |
|
||||
|`FS` | `","` | "Field Separator" delimiter between fields |
|
||||
|`RS` | `"\n"` | "Record Separator" delimiter between rows |
|
||||
|`dateNF` | FMT 14 | Use specified date format in string output |
|
||||
|`strip` | false | Remove trailing field separators in each record ** |
|
||||
|`blankrows` | true | Include blank lines in the CSV output |
|
||||
|`skipHidden` | false | Skips hidden rows/columns in the CSV output |
|
||||
|`forceQuotes` | false | Force quotes around fields |
|
||||
|
||||
- `strip` will remove trailing commas from each line under default `FS/RS`
|
||||
- `blankrows` must be set to `false` to skip blank lines.
|
||||
|
@ -99,7 +99,7 @@ function make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Arr
|
||||
else if(val.v != null) {
|
||||
isempty = false;
|
||||
txt = ''+format_cell(val, null, o);
|
||||
for(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34) {txt = "\"" + txt.replace(qreg, '""') + "\""; break; }
|
||||
for(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = "\"" + txt.replace(qreg, '""') + "\""; break; }
|
||||
if(txt == "ID") txt = '"ID"';
|
||||
} else if(val.f != null && !val.F) {
|
||||
isempty = false;
|
||||
|
3
types/index.d.ts
vendored
3
types/index.d.ts
vendored
@ -623,6 +623,9 @@ export interface Sheet2CSVOpts extends DateNFOption {
|
||||
|
||||
/** Skip hidden rows and columns in the CSV output */
|
||||
skipHidden?: boolean;
|
||||
|
||||
/** Force quotes around fields */
|
||||
forceQuotes?: boolean;
|
||||
}
|
||||
|
||||
export interface OriginOption {
|
||||
|
@ -21213,7 +21213,7 @@ function make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Arr
|
||||
else if(val.v != null) {
|
||||
isempty = false;
|
||||
txt = ''+format_cell(val, null, o);
|
||||
for(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34) {txt = "\"" + txt.replace(qreg, '""') + "\""; break; }
|
||||
for(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = "\"" + txt.replace(qreg, '""') + "\""; break; }
|
||||
if(txt == "ID") txt = '"ID"';
|
||||
} else if(val.f != null && !val.F) {
|
||||
isempty = false;
|
||||
|
2
xlsx.js
generated
2
xlsx.js
generated
@ -21082,7 +21082,7 @@ function make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {
|
||||
else if(val.v != null) {
|
||||
isempty = false;
|
||||
txt = ''+format_cell(val, null, o);
|
||||
for(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34) {txt = "\"" + txt.replace(qreg, '""') + "\""; break; }
|
||||
for(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = "\"" + txt.replace(qreg, '""') + "\""; break; }
|
||||
if(txt == "ID") txt = '"ID"';
|
||||
} else if(val.f != null && !val.F) {
|
||||
isempty = false;
|
||||
|
@ -8396,7 +8396,7 @@ function make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Arr
|
||||
else if(val.v != null) {
|
||||
isempty = false;
|
||||
txt = ''+format_cell(val, null, o);
|
||||
for(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34) {txt = "\"" + txt.replace(qreg, '""') + "\""; break; }
|
||||
for(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = "\"" + txt.replace(qreg, '""') + "\""; break; }
|
||||
if(txt == "ID") txt = '"ID"';
|
||||
} else if(val.f != null && !val.F) {
|
||||
isempty = false;
|
||||
|
@ -8292,7 +8292,7 @@ function make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {
|
||||
else if(val.v != null) {
|
||||
isempty = false;
|
||||
txt = ''+format_cell(val, null, o);
|
||||
for(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34) {txt = "\"" + txt.replace(qreg, '""') + "\""; break; }
|
||||
for(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = "\"" + txt.replace(qreg, '""') + "\""; break; }
|
||||
if(txt == "ID") txt = '"ID"';
|
||||
} else if(val.f != null && !val.F) {
|
||||
isempty = false;
|
||||
|
Loading…
Reference in New Issue
Block a user