8000 removed sheet_to_dif IIFE · SheetJS/sheetjs@0a6ddca · GitHub
[go: up one dir, main page]

Skip to content

Commit 0a6ddca

Browse files
committed
removed sheet_to_dif IIFE
1 parent 0de9479 commit 0a6ddca

File tree

4 files changed

+49
-55
lines changed

4 files changed

+49
-55
lines changed

.gitmodules

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
[submodule "test_files"]
22
path = test_files
33
url = https://github.com/SheetJS/test_files
4+
ignore = dirty

.spelling

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ Rollup
5454
SessionStorage
5555
SQLite
5656
SystemJS
57+
Vite
5758
VueJS
5859
WebKit
5960
WebSQL

bits/40_harb.js

Lines changed: 46 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -683,62 +683,54 @@ var DIF = /*#__PURE__*/(function() {
683683
return o;
684684
}
685685

686-
var sheet_to_dif = /*#__PURE__*/(function() {
687-
var push_field = function pf(o/*:Array<string>*/, topic/*:string*/, v/*:number*/, n/*:number*/, s/*:string*/) {
688-
o.push(topic);
689-
o.push(v + "," + n);
690-
o.push('"' + s.replace(/"/g,'""') + '"');
691-
};
692-
var push_value = function po(o/*:Array<string>*/, type/*:number*/, v/*:any*/, s/*:string*/) {
693-
o.push(type + "," + v);
694-
o.push(type == 1 ? '"' + s.replace(/"/g,'""') + '"' : s);
695-
};
696-
return function sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {
697-
var o/*:Array<string>*/ = [];
698-
var r = safe_decode_range(ws['!ref']), cell/*:Cell*/;
699-
var dense = Array.isArray(ws);
700-
push_field(o, "TABLE", 0, 1, "sheetjs");
701-
push_field(o, "VECTORS", 0, r.e.r - r.s.r + 1,"");
702-
push_field(o, "TUPLES", 0, r.e.c - r.s.c + 1,"");
703-
push_field(o, "DATA", 0, 0,"");
704-
for(var R = r.s.r; R <= r.e.r; ++R) {
705-
push_value(o, -1, 0, "BOT");
706-
for(var C = r.s.c; C <= r.e.c; ++C) {
707-
var coord = encode_cell({r:R,c:C});
708-
cell = dense ? (ws[R]||[])[ 8000 C] : ws[coord];
709-
if(!cell) { push_value(o, 1, 0, ""); continue;}
710-
switch(cell.t) {
711-
case 'n':
712-
var val = DIF_XL ? cell.w : cell.v;
713-
if(!val && cell.v != null) val = cell.v;
714-
if(val == null) {
715-
if(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, "=" + cell.f);
716-
else push_value(o, 1, 0, "");
717-
}
718-
else push_value(o, 0, val, "V");
719-
break;
720-
case 'b':
721-
push_value(o, 0, cell.v ? 1 : 0, cell.v ? "TRUE" : "FALSE");
722-
break;
723-
case 's':
724-
push_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '="' + cell.v + '"');
725-
break;
726-
case 'd':
727-
if(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));
728-
if(DIF_XL) push_value(o, 0, cell.w, "V");
729-
else push_value(o, 1, 0, cell.w);
730-
break;
731-
default: push_value(o, 1, 0, "");
732-
}
686+
function make_value(v/*:number*/, s/*:string*/)/*:string*/ { return "0," + String(v) + "\r\n" + s; }
687+
function make_value_str(s/*:string*/)/*:string*/ { return "1,0\r\n\"" + s.replace(/"/g,'""') + '"'; }
688+
function sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {
689+
var _DIF_XL = DIF_XL;
690+
var r = safe_decode_range(ws['!ref']);
691+
var dense = Array.isArray(ws);
692+
var o/*:Array<string>*/ = [
693+
"TABLE\r\n0,1\r\n\"sheetjs\"\r\n",
694+
"VECTORS\r\n0," + (r.e.r - r.s.r + 1) + "\r\n\"\"\r\n",
695+
"TUPLES\r\n0," + (r.e.c - r.s.c + 1) + "\r\n\"\"\r\n",
696+
"DATA\r\n0,0\r\n\"\"\r\n"
697+
];
698+
for(var R = r.s.r; R <= r.e.r; ++R) {
699+
var p = "-1,0\r\nBOT\r\n";
700+
for(var C = r.s.c; C <= r.e.c; ++C) {
701+
var cell/*:Cell*/ = dense ? (ws[R] && ws[R][C]) : ws[encode_cell({r:R,c:C})];
702+
if(cell == null) { p +=("1,0\r\n\"\"\r\n"); continue;}
703+
switch(cell.t) {
704+
case 'n':
705+
if(_DIF_XL) {
706+
if(cell.w != null) p +=("0," + cell.w + "\r\nV");
707+
else if(cell.v != null) p +=(make_value(cell.v, "V")); // TODO: should this call SSF_format?
708+
else if(cell.f != null && !cell.F) p +=(make_value_str("=" + cell.f));
709+
else p +=("1,0\r\n\"\"");
710+
} else {
711+
if(cell.v == null) p +=("1,0\r\n\"\"");
712+
else p +=(make_value(cell.v, "V"));
713+
}
714+
break;
715+
case 'b':
716+
p +=(cell.v ? make_value(1, "TRUE") : make_value(0, "FALSE"));
717+
break;
718+
case 's':
719+
p +=(make_value_str((!_DIF_XL || isNaN(+cell.v)) ? cell.v : '="' + cell.v + '"'));
720+
break;
721+
case 'd':
722+
if(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));
723+
if(_DIF_XL) p +=(make_value(cell.w, "V"));
724+
else p +=(make_value_str(cell.w));
725+
break;
726+
default: p +=("1,0\r\n\"\"");
733727
}
728+
p += "\r\n";
734729
}
735-
push_value(o, -1, 0, "EOD");
736-
var RS = "\r\n";
737-
var oo = o.join(RS);
738-
//while((oo.length & 0x7F) != 0) oo += "\0";
739-
return oo;
740-
};
741-
})();
730+
o.push(p);
731+
}
732+
return o.join("") + "-1,0\r\nEOD";
733+
}
742734
return {
743735
to_workbook: dif_to_workbook,
744736
to_sheet: dif_to_sheet,

test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2225,7 +2225,7 @@ describe('CSV', function() {
22252225
assert.equal(get_cell(ws, "C" + (R+1)).v, aoa[R][2]);
22262226
}
22272227
assert.equal(get_cell(ws, "B2").v, "3 b");
2228-
var B1 = get_cell(ws, "B1"); console.log(B1); assert.equal(B1.t, "d"); assert.equal(B1.v.getHours(), 3);
2228+
var B1 = get_cell(ws, "B1"); assert.equal(B1.t, "d"); assert.equal(B1.v.getHours(), 3);
22292229
var B3 = get_cell(ws, "B3"); assert.equal(B3.t, "d"); assert.equal(B3.v.getHours(), 15);
22302230
ws = X.read(aoa.map(function(row) { return row.join(","); }).join("\n"), {type: "string", cellDates: false}).Sheets.Sheet1;
22312231
for(var R = 0; R < 3; ++R) {

0 commit comments

Comments
 (0)
0