From 0b6ebc67da5fcff85da59b8c179337657929f2a5 Mon Sep 17 00:00:00 2001 From: SheetJS Date: Thu, 10 Mar 2022 00:31:13 -0500 Subject: [PATCH] DBF preserve field properties - DBF write type N and roundtrip C length (fixes #1888 h/t@bandizsolt) - clean up xhr demo (fixes #2604 h/t @UP2022742) - clean up vue / nuxt demo --- Makefile | 3 +- bits/00_header.js | 2 +- bits/40_harb.js | 53 ++++++++++++---- bits/83_numbers.js | 5 +- bits/90_utils.js | 11 +++- bits/97_node.js | 13 ++-- demos/vue/Makefile | 4 +- demos/vue/README.md | 39 ++++++++---- demos/vue/content/sheetjs.numbers | Bin 0 -> 98993 bytes demos/vue/native.vue | 2 +- demos/vue/nuxt.config.js | 30 ++++++--- demos/vue/package.json | 8 ++- demos/vue/pages/index.vue | 100 +++++------------------------- demos/xhr/axios.html | 22 +++++-- demos/xhr/fetch.html | 25 +++++--- demos/xhr/server.js | 15 +++-- demos/xhr/superagent.html | 30 ++++++--- demos/xhr/xhr.html | 29 ++++++--- modules/83_numbers.js | 5 +- modules/src/numbers.ts | 5 +- test.mjs | 14 +++++ test.ts | 9 +++ types/index.d.ts | 18 ++++++ xlsx.flow.js | 86 ++++++++++++++++++------- xlsx.js | 86 ++++++++++++++++++------- xlsx.mjs | 84 ++++++++++++++++++------- 26 files changed, 456 insertions(+), 242 deletions(-) create mode 100755 demos/vue/content/sheetjs.numbers diff --git a/Makefile b/Makefile index b34317b..2b4e0d2 100644 --- a/Makefile +++ b/Makefile @@ -70,7 +70,8 @@ init: ## Initial setup for development git submodule init git submodule update #git submodule foreach git pull origin master - git submodule foreach make + #git submodule foreach make + git submodule foreach make all mkdir -p tmp DISTHDR=misc/suppress_export.js diff --git a/bits/00_header.js b/bits/00_header.js index ead5056..acd0919 100644 --- a/bits/00_header.js +++ b/bits/00_header.js @@ -1,6 +1,6 @@ /*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */ /* vim: set ts=2: */ /*exported XLSX */ -/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */ +/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false, Deno:false */ var XLSX = {}; function make_xlsx_lib(XLSX){ diff --git a/bits/40_harb.js b/bits/40_harb.js index 980ba1d..2d8e0d8 100644 --- a/bits/40_harb.js +++ b/bits/40_harb.js @@ -204,7 +204,7 @@ function dbf_to_aoa(buf, opts)/*:AOA*/ { out[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400); break; case 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break; - case 'Y': out[R][C] = dd.read_shift(4,'i')/1e4; break; + case 'Y': out[R][C] = dd.read_shift(4,'i')/1e4 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); break; case 'O': out[R][C] = -dd.read_shift(-8, 'f'); break; case 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; } /* falls through */ @@ -218,13 +218,20 @@ function dbf_to_aoa(buf, opts)/*:AOA*/ { } if(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error("DBF EOF Marker missing " + (d.l-1) + " of " + d.length + " " + d[d.l-1].toString(16)); if(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows); + opts.DBF = fields; return out; } function dbf_to_sheet(buf, opts)/*:Worksheet*/ { var o = opts || {}; if(!o.dateNF) o.dateNF = "yyyymmdd"; - return aoa_to_sheet(dbf_to_aoa(buf, o), o); + var ws = aoa_to_sheet(dbf_to_aoa(buf, o), o); + ws["!cols"] = o.DBF.map(function(field) { return { + wch: field.len, + DBF: field + }}); + delete o.DBF; + return ws; } function dbf_to_workbook(buf, opts)/*:Workbook*/ { @@ -240,10 +247,11 @@ function sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) { if(o.type == "string") throw new Error("Cannot write DBF to JS string"); var ba = buf_array(); var aoa/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true}); - var headers = aoa[0], data = aoa.slice(1); + var headers = aoa[0], data = aoa.slice(1), cols = ws["!cols"] || []; var i = 0, j = 0, hcnt = 0, rlen = 1; for(i = 0; i < headers.length; ++i) { - if(i == null) continue; + if(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; } + if(headers[i] == null) continue; ++hcnt; if(typeof headers[i] === 'number') headers[i] = headers[i].toString(10); if(typeof headers[i] !== 'string') throw new Error("DBF Invalid column name " + headers[i] + " |" + (typeof headers[i]) + "|"); @@ -252,13 +260,15 @@ function sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) { } var range = safe_decode_range(ws['!ref']); var coltypes/*:Array*/ = []; + var colwidths/*:Array*/ = []; + var coldecimals/*:Array*/ = []; for(i = 0; i <= range.e.c - range.s.c; ++i) { + var guess = '', _guess = '', maxlen = 0; var col/*:Array*/ = []; for(j=0; j < data.length; ++j) { if(data[j][i] != null) col.push(data[j][i]); } if(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; } - var guess = '', _guess = ''; for(j = 0; j < col.length; ++j) { switch(typeof col[j]) { /* TODO: check if L2 compat is desired */ @@ -268,10 +278,23 @@ function sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) { case 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break; default: _guess = 'C'; } + maxlen = Math.max(maxlen, String(col[j]).length); guess = guess && guess != _guess ? 'C' : _guess; - if(guess == 'C') break; + //if(guess == 'C') break; } - rlen += _RLEN[guess] || 0; + if(maxlen > 250) maxlen = 250; + _guess = ((cols[i]||{}).DBF||{}).type; + /* TODO: more fine grained control over DBF type resolution */ + if(_guess == 'C') { + if(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len; + } + if(guess == 'B' && _guess == 'N') { + guess = 'N'; + coldecimals[i] = cols[i].DBF.dec; + maxlen = cols[i].DBF.len; + } + colwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0); + rlen += colwidths[i]; coltypes[i] = guess; } @@ -290,14 +313,14 @@ function sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) { hf.write_shift(1, _f, "sbcs"); hf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], "sbcs"); hf.write_shift(4, j); - hf.write_shift(1, _RLEN[coltypes[i]] || 0); - hf.write_shift(1, 0); + hf.write_shift(1, colwidths[i] || _RLEN[coltypes[i]] || 0); + hf.write_shift(1, coldecimals[i] || 0); hf.write_shift(1, 0x02); hf.write_shift(4, 0); hf.write_shift(1, 0); hf.write_shift(4, 0); hf.write_shift(4, 0); - j += _RLEN[coltypes[i]] || 0; + j += (colwidths[i] || _RLEN[coltypes[i]] || 0); } var hb = ba.next(264); @@ -311,6 +334,12 @@ function sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) { switch(coltypes[j]) { case 'L': rout.write_shift(1, data[i][j] == null ? 0x3F : data[i][j] ? 0x54 : 0x46); break; case 'B': rout.write_shift(8, data[i][j]||0, 'f'); break; + case 'N': + var _n = "0"; + if(typeof data[i][j] == "number") _n = data[i][j].toFixed(coldecimals[j]||0); + for(hcnt=0; hcnt < colwidths[j]-_n.length; ++hcnt) rout.write_shift(1, 0x20); + rout.write_shift(1, _n, "sbcs"); + break; case 'D': if(!data[i][j]) rout.write_shift(8, "00000000", "sbcs"); else { @@ -319,9 +348,9 @@ function sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) { rout.write_shift(2, ("00"+data[i][j].getDate()).slice(-2), "sbcs"); } break; case 'C': - var _s = String(data[i][j]||""); + var _s = String(data[i][j] != null ? data[i][j] : "").slice(0, colwidths[j]); rout.write_shift(1, _s, "sbcs"); - for(hcnt=0; hcnt < 250-_s.length; ++hcnt) rout.write_shift(1, 0x20); break; + for(hcnt=0; hcnt < colwidths[j]-_s.length; ++hcnt) rout.write_shift(1, 0x20); break; } } // data diff --git a/bits/83_numbers.js b/bits/83_numbers.js index bce2b68..48a6637 100644 --- a/bits/83_numbers.js +++ b/bits/83_numbers.js @@ -442,13 +442,14 @@ var NUMBERS = !Object.defineProperty ? (void 0) :(function() { return { Sheets: {}, SheetNames: [] }; }; var book_append_sheet = function(wb, ws, name) { + var i = 1; if (!name) - for (var i = 1; i < 9999; ++i) { + for (; i < 9999; ++i) { if (wb.SheetNames.indexOf(name = "Sheet ".concat(i)) == -1) break; } else if (wb.SheetNames.indexOf(name) > -1) - for (var i = 1; i < 9999; ++i) { + for (; i < 9999; ++i) { if (wb.SheetNames.indexOf("".concat(name, "_").concat(i)) == -1) { name = "".concat(name, "_").concat(i); break; diff --git a/bits/90_utils.js b/bits/90_utils.js index 3e633b8..06fac10 100644 --- a/bits/90_utils.js +++ b/bits/90_utils.js @@ -64,7 +64,8 @@ function sheet_to_json(sheet/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) { var out/*:Array*/ = []; var outi = 0, counter = 0; var dense = Array.isArray(sheet); - var R = r.s.r, C = 0, CC = 0; + var R = r.s.r, C = 0; + var header_cnt = {}; if(dense && !sheet[R]) sheet[R] = []; for(C = r.s.c; C <= r.e.c; ++C) { cols[C] = encode_col(C); @@ -76,8 +77,12 @@ function sheet_to_json(sheet/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) { default: if(val == null) val = {w: "__EMPTY", t: "s"}; vv = v = format_cell(val, null, o); - counter = 0; - for(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) { vv = v + "_" + (++counter); CC = -1; } + counter = header_cnt[v] || 0; + if(!counter) header_cnt[v] = 1; + else { + do { vv = v + "_" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter; + header_cnt[vv] = 1; + } hdr[C] = vv; } } diff --git a/bits/97_node.js b/bits/97_node.js index f57e001..8fc2819 100644 --- a/bits/97_node.js +++ b/bits/97_node.js @@ -79,7 +79,8 @@ function write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) { var cols/*:Array*/ = []; var counter = 0; var dense = Array.isArray(sheet); - var R = r.s.r, C = 0, CC = 0; + var R = r.s.r, C = 0; + var header_cnt = {}; if(dense && !sheet[R]) sheet[R] = []; for(C = r.s.c; C <= r.e.c; ++C) { cols[C] = encode_col(C); @@ -91,8 +92,12 @@ function write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) { default: if(val == null) val = {w: "__EMPTY", t: "s"}; vv = v = format_cell(val, null, o); - counter = 0; - for(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + "_" + (++counter); + counter = header_cnt[v] || 0; + if(!counter) header_cnt[v] = 1; + else { + do { vv = v + "_" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter; + header_cnt[vv] = 1; + } hdr[C] = vv; } } @@ -110,7 +115,7 @@ function write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) { return stream.push(null); }; return stream; -}; +} var __stream = { to_json: write_json_stream, diff --git a/demos/vue/Makefile b/demos/vue/Makefile index 70db57f..a47d6d3 100644 --- a/demos/vue/Makefile +++ b/demos/vue/Makefile @@ -4,9 +4,7 @@ vue: ## Simple server for vue .PHONY: nuxt nuxt: ## nuxt.js demo - mkdir -p node_modules - cd node_modules; if [ ! -e xlsx ]; then ln -s ../../../ xlsx; fi; cd .. - npm i nuxt vue + npm i xlsx @nuxt/content npx nuxt .PHONY: weex diff --git a/demos/vue/README.md b/demos/vue/README.md index 78c90fe..2c01b18 100644 --- a/demos/vue/README.md +++ b/demos/vue/README.md @@ -1,4 +1,4 @@ -# VueJS 2 +# VueJS The `xlsx.core.min.js` and `xlsx.full.min.js` scripts are designed to be dropped into web pages with script tags: @@ -10,7 +10,11 @@ into web pages with script tags: The library can also be imported directly from single-file components with: ```js -import XLSX from 'xlsx'; +// full import +import * as XLSX from 'xlsx'; + +// named imports +import { read, utils, writeFileXLSX } from 'xlsx'; ``` This demo directly generates HTML using `sheet_to_html` and adds an element to @@ -93,19 +97,30 @@ fs.writeFileSync("sheetjs.xls", new Buffer(str, "base64")); ## Other Demos -#### Server-Rendered VueJS Components with Nuxt.js +### Nuxt Content -The scripts should be treated as external resources in `nuxt.config.js`: +`@nuxt/content` parser can be extended to support spreadsheet hot reload: ```js -module.exports = { - head: { - script: [ - { src: "https://unpkg.com/xlsx/dist/shim.min.js" }, - { src: "https://unpkg.com/xlsx/dist/xlsx.full.min.js" } - ] - } -}; +// nuxt.config.js +import { readFile, utils } from 'xlsx'; + +const parseXLSX = (file, { path }) => { + const wb = readFile(path); + const o = wb.SheetNames.map(name => ({ name, data: utils.sheet_to_json(wb.Sheets[name])})); + return { data: o }; +} + +export default { + content: { + extendParser: { + ".numbers": parseXLSX, + ".xlsx": parseXLSX, + ".xls": parseXLSX + // ... other extensions + } + } +} ``` [![Analytics](https://ga-beacon.appspot.com/UA-36810333-1/SheetJS/js-xlsx?pixel)](https://github.com/SheetJS/js-xlsx) diff --git a/demos/vue/content/sheetjs.numbers b/demos/vue/content/sheetjs.numbers new file mode 100755 index 0000000000000000000000000000000000000000..700e97dfada2dbad059305fd104e6e9a9ff66c0d GIT binary patch literal 98993 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ⅅj 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%0D}NS0Pg{Y0Y(5u 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 literal 0 HcmV?d00001 diff --git a/demos/vue/native.vue b/demos/vue/native.vue index 1dcea82..5588eed 100644 --- a/demos/vue/native.vue +++ b/demos/vue/native.vue @@ -27,7 +27,7 @@ diff --git a/demos/xhr/axios.html b/demos/xhr/axios.html index 30deb81..7a492be 100644 --- a/demos/xhr/axios.html +++ b/demos/xhr/axios.html @@ -26,21 +26,33 @@ a { text-decoration: none } - +