forked from sheetjs/sheetjs
updating to 0.11.19
This commit is contained in:
parent
b208f2ed9c
commit
c032503f93
@ -40,8 +40,7 @@ Use readAsBinaryString: (when available) <input type="checkbox" name="userabs" c
|
||||
<div id="htmlout"></div>
|
||||
<br />
|
||||
<script src="https://unpkg.com/canvas-datagrid/dist/canvas-datagrid.js"></script>
|
||||
<script type="text/javascript" src="https://rawgit.com/eligrey/Blob.js/master/Blob.js"></script>
|
||||
<script type="text/javascript" src="https://rawgit.com/eligrey/FileSaver.js/master/FileSaver.js"></script>
|
||||
<script src="shim.js"></script>
|
||||
<script src="xlsx.full.min.js"></script>
|
||||
<script>
|
||||
/*jshint browser:true */
|
||||
@ -151,11 +150,7 @@ var export_xlsx = (function() {
|
||||
XLSX.utils.book_append_sheet(new_wb, new_ws, 'SheetJS');
|
||||
|
||||
/* write file and trigger a download */
|
||||
var wbout = XLSX.write(new_wb, {bookType:'xlsx', bookSST:true, type:'array'});
|
||||
var fname = 'sheetjs.xlsx';
|
||||
try {
|
||||
saveAs(new Blob([wbout],{type:"application/octet-stream"}), fname);
|
||||
} catch(e) { if(typeof console != 'undefined') console.log(e, wbout); }
|
||||
XLSX.writeFile(new_wb, 'sheetjs.xlsx', {bookSST:true});
|
||||
};
|
||||
})();
|
||||
</script>
|
||||
|
27
shim.js
27
shim.js
@ -341,3 +341,30 @@ if(typeof Uint8Array !== 'undefined' && !Uint8Array.prototype.slice) Uint8Array.
|
||||
while(start <= --end) out[end - start] = this[end];
|
||||
return out;
|
||||
};
|
||||
|
||||
// VBScript + ActiveX fallback for IE5+
|
||||
var IE_SaveFile = (function() { try {
|
||||
if(typeof IE_SaveFile_Impl == "undefined") document.write([
|
||||
'<script type="text/vbscript" language="vbscript">',
|
||||
'IE_GetProfileAndPath_Key = "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\\"',
|
||||
'Function IE_GetProfileAndPath(key): Set wshell = CreateObject("WScript.Shell"): IE_GetProfileAndPath = wshell.RegRead(IE_GetProfileAndPath_Key & key): IE_GetProfileAndPath = wshell.ExpandEnvironmentStrings("%USERPROFILE%") & "!" & IE_GetProfileAndPath: End Function',
|
||||
'Function IE_SaveFile_Impl(FileName, payload): Dim data, plen, i, bit: data = CStr(payload): plen = Len(data): Set fso = CreateObject("Scripting.FileSystemObject"): fso.CreateTextFile FileName, True: Set f = fso.GetFile(FileName): Set stream = f.OpenAsTextStream(2, 0): For i = 1 To plen Step 3: bit = Mid(data, i, 2): stream.write Chr(CLng("&h" & bit)): Next: stream.Close: IE_SaveFile_Impl = True: End Function',
|
||||
'|/script>'.replace("|","<")
|
||||
].join("\r\n"));
|
||||
if(typeof IE_SaveFile_Impl == "undefined") return void 0;
|
||||
var IE_GetPath = (function() {
|
||||
var DDP1 = "";
|
||||
try { DDP1 = IE_GetProfileAndPath("{374DE290-123F-4565-9164-39C4925E467B}"); } catch(e) { try { DDP1 = IE_GetProfileAndPath("Personal"); } catch(e) { try { DDP1 = IE_GetProfileAndPath("Desktop"); } catch(e) { throw e; }}}
|
||||
var o = DDP1.split("!");
|
||||
DDP = o[1].replace("%USERPROFILE%", o[0]);
|
||||
return function(path) { return DDP + "\\" + path; };
|
||||
})();
|
||||
function fix_data(data) {
|
||||
var out = [];
|
||||
var T = typeof data == "string";
|
||||
for(var i = 0; i < data.length; ++i) out.push(("00"+(T ? data.charCodeAt(i) : data[i]).toString(16)).slice(-2));
|
||||
var o = out.join("|");
|
||||
return o;
|
||||
}
|
||||
return function(data, filename) { return IE_SaveFile_Impl(IE_GetPath(filename), fix_data(data)); };
|
||||
} catch(e) { return void 0; }})();
|
||||
|
@ -1,7 +1,9 @@
|
||||
/* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ts=2: */
|
||||
/*jshint mocha:true */
|
||||
/* eslint-env mocha */
|
||||
/*global process, document, require */
|
||||
/*global ArrayBuffer, Uint8Array */
|
||||
/*::
|
||||
declare type EmptyFunc = (() => void) | null;
|
||||
declare type DescribeIt = { (desc:string, test:EmptyFunc):void; skip(desc:string, test:EmptyFunc):void; };
|
||||
@ -17,6 +19,7 @@ describe('source',function(){it('should load',function(){X=require(modp);});});
|
||||
var DIF_XL = true;
|
||||
|
||||
var browser = typeof document !== 'undefined';
|
||||
// $FlowIgnore
|
||||
if(!browser) try { require('./shim'); } catch(e) { }
|
||||
|
||||
var opts = ({cellNF: true}/*:any*/);
|
||||
@ -189,7 +192,6 @@ var MCPaths = pathit("mc", ["xlsx", "xlsb", "xls", "xml", "ods"]);
|
||||
var CSSPaths = pathit("css", ["xlsx", "xlsb", "xls", "xml"]);
|
||||
var NFPaths = pathit("nf", ["xlsx", "xlsb", "xls", "xml"]);
|
||||
var DTPaths = pathit("dt", ["xlsx", "xlsb", "xls", "xml"]);
|
||||
var NFPaths = pathit("nf", ["xlsx", "xlsb", "xls", "xml"]);
|
||||
var HLPaths = pathit("hl", ["xlsx", "xlsb", "xls", "xml"]);
|
||||
var ILPaths = pathit("il", ["xlsx", "xlsb", "xls", "xml", "ods", "xls5"]);
|
||||
var OLPaths = pathit("ol", ["xlsx", "xlsb", "xls", "ods", "xls5"]);
|
||||
@ -317,12 +319,11 @@ var wbtable = {};
|
||||
wbtable[dir + x] = wb;
|
||||
parsetest(x, wb, true);
|
||||
});
|
||||
fullex.forEach(function(ext, idx) {
|
||||
fullex.forEach(function(ext) {
|
||||
it(x + ' [' + ext + ']', function(){
|
||||
var wb = wbtable[dir + x];
|
||||
if(!wb) wb = X.readFile(dir + x, opts);
|
||||
wb = X.read(X.write(wb, {type:"buffer", bookType:ext.replace(/\./,"")}), {WTF:opts.WTF, cellNF: true});
|
||||
|
||||
parsetest(x, wb, ext.replace(/\./,"") !== "xlsb", ext);
|
||||
});
|
||||
});
|
||||
@ -470,7 +471,7 @@ describe('parse options', function() {
|
||||
[paths.cssxlsx /*, paths.cssxlsb, paths.cssxls, paths.cssxml*/].forEach(function(p) {
|
||||
var wb = X.read(fs.readFileSync(p), {type:TYPE, cellStyles:true});
|
||||
var found = false;
|
||||
each_sheet(wb, function(ws, i) { each_cell(ws, function(cell) {
|
||||
each_sheet(wb, function(ws/*::, i*/) { /*:: void i; */each_cell(ws, function(cell) {
|
||||
if(typeof cell.s !== 'undefined') return (found = true);
|
||||
}); });
|
||||
assert(found);
|
||||
@ -479,7 +480,7 @@ describe('parse options', function() {
|
||||
it('should not generate cell dates by default', function() {
|
||||
DTPaths.forEach(function(p) {
|
||||
var wb = X.read(fs.readFileSync(p), {type:TYPE});
|
||||
each_sheet(wb, function(ws, i) { each_cell(ws, function(cell) {
|
||||
each_sheet(wb, function(ws/*::, i*/) { /*:: void i; */each_cell(ws, function(cell) {
|
||||
assert(cell.t !== 'd');
|
||||
}); });
|
||||
});
|
||||
@ -488,7 +489,7 @@ describe('parse options', function() {
|
||||
DTPaths.forEach(function(p) {
|
||||
var wb = X.read(fs.readFileSync(p), {type:TYPE, cellDates: true, WTF:1});
|
||||
var found = false;
|
||||
each_sheet(wb, function(ws, i) { each_cell(ws, function(cell) {
|
||||
each_sheet(wb, function(ws/*::, i*/) { /*:: void i; */each_cell(ws, function(cell) {
|
||||
if(cell.t === 'd') return (found = true);
|
||||
}); });
|
||||
assert(found);
|
||||
@ -910,7 +911,7 @@ describe('parse features', function() {
|
||||
var wbs = [], wbs_no_slk = [];
|
||||
var bef = (function() {
|
||||
X = require(modp);
|
||||
wbs = CWPaths.map(function(n) { return X.read(fs.readFileSync(CWPaths[0]), {type:TYPE, cellStyles:true}); });
|
||||
wbs = CWPaths.map(function(n) { return X.read(fs.readFileSync(n), {type:TYPE, cellStyles:true}); });
|
||||
wbs_no_slk = wbs.slice(0, 5);
|
||||
});
|
||||
if(typeof before != 'undefined') before(bef);
|
||||
@ -1171,6 +1172,7 @@ describe('parse features', function() {
|
||||
'A3:A10', 'B3:B10', 'E1:E10', 'F6:F8', /* cols */
|
||||
'H1:J4', 'H10' /* blocks */
|
||||
];
|
||||
/*eslint-disable */
|
||||
var exp/*:Array<any>*/ = [
|
||||
{ patternType: 'darkHorizontal',
|
||||
fgColor: { theme: 9, raw_rgb: 'F79646' },
|
||||
@ -1197,6 +1199,7 @@ describe('parse features', function() {
|
||||
fgColor: { theme: 3, raw_rgb: 'EEECE1' },
|
||||
bgColor: { theme: 7, raw_rgb: '8064A2' } }
|
||||
];
|
||||
/*eslint-enable */
|
||||
ranges.forEach(function(rng) {
|
||||
it('XLS | ' + rng,function(){cmparr(rn2(rng).map(function(x){ return get_cell(wsxls,x).s; }));});
|
||||
it('XLSX | ' + rng,function(){cmparr(rn2(rng).map(function(x){ return get_cell(wsxlsx,x).s; }));});
|
||||
@ -1698,7 +1701,7 @@ describe('json output', function() {
|
||||
});
|
||||
it('should preserve values when column header is missing', function() {
|
||||
/*jshint elision:true */
|
||||
var _data = [[,"a","b",,"c"], [1,2,3,,5],[,3,4,5,6]];
|
||||
var _data = [[,"a","b",,"c"], [1,2,3,,5],[,3,4,5,6]]; // eslint-disable-line no-sparse-arrays
|
||||
/*jshint elision:false */
|
||||
var _ws = X.utils.aoa_to_sheet(_data);
|
||||
var json1 = X.utils.sheet_to_json(_ws, { raw: true });
|
||||
@ -1720,7 +1723,7 @@ var plaintext_val = [
|
||||
["B3", 's', " ", " "],
|
||||
["A3"]
|
||||
];
|
||||
function plaintext_test(wb, raw, t) {
|
||||
function plaintext_test(wb, raw) {
|
||||
var sheet = wb.Sheets[wb.SheetNames[0]];
|
||||
plaintext_val.forEach(function(x) {
|
||||
var cell = get_cell(sheet, x[0]);
|
||||
@ -1790,8 +1793,8 @@ describe('CSV', function() {
|
||||
assert.equal(cell.v.getMonth(), 2);
|
||||
assert.equal(cell.w, "2/3/14");
|
||||
});
|
||||
it('should interpret values by default', function() { plaintext_test(X.read(csv_bstr, {type:"binary"}), false, false); });
|
||||
it('should generate strings if raw option is passed', function() { plaintext_test(X.read(csv_str, {type:"string", raw:true}), true, false); });
|
||||
it('should interpret values by default', function() { plaintext_test(X.read(csv_bstr, {type:"binary"}), false); });
|
||||
it('should generate strings if raw option is passed', function() { plaintext_test(X.read(csv_str, {type:"string", raw:true}), true); });
|
||||
it('should handle formulae', function() {
|
||||
var bb = '=,=1+1,="100"';
|
||||
var sheet = X.read(bb, {type:"binary"}).Sheets.Sheet1;
|
||||
@ -1920,9 +1923,9 @@ function get_dom_element(html) {
|
||||
|
||||
describe('HTML', function() {
|
||||
describe('input string', function(){
|
||||
it('should interpret values by default', function() { plaintext_test(X.read(html_bstr, {type:"binary"}), false, false); });
|
||||
it('should generate strings if raw option is passed', function() { plaintext_test(X.read(html_bstr, {type:"binary", raw:true}), true, false); });
|
||||
it('should handle "string" type', function() { plaintext_test(X.read(html_str, {type:"string"}), false, false); });
|
||||
it('should interpret values by default', function() { plaintext_test(X.read(html_bstr, {type:"binary"}), false); });
|
||||
it('should generate strings if raw option is passed', function() { plaintext_test(X.read(html_bstr, {type:"binary", raw:true}), true); });
|
||||
it('should handle "string" type', function() { plaintext_test(X.read(html_str, {type:"string"}), false); });
|
||||
it('should handle newlines correctly', function() {
|
||||
var table = "<table><tr><td>foo<br/>bar</td><td>baz</td></tr></table>";
|
||||
var wb = X.read(table, {type:"string"});
|
||||
@ -1930,8 +1933,8 @@ describe('HTML', function() {
|
||||
});
|
||||
});
|
||||
(domtest ? describe : describe.skip)('input DOM', function() {
|
||||
it('should interpret values by default', function() { plaintext_test(X.utils.table_to_book(get_dom_element(html_str)), false, true); });
|
||||
it('should generate strings if raw option is passed', function() { plaintext_test(X.utils.table_to_book(get_dom_element(html_str), {raw:true}), true, true); });
|
||||
it('should interpret values by default', function() { plaintext_test(X.utils.table_to_book(get_dom_element(html_str)), false); });
|
||||
it('should generate strings if raw option is passed', function() { plaintext_test(X.utils.table_to_book(get_dom_element(html_str), {raw:true}), true); });
|
||||
it('should handle newlines correctly', function() {
|
||||
var table = get_dom_element("<table><tr><td>foo<br/>bar</td><td>baz</td></tr></table>");
|
||||
var ws = X.utils.table_to_sheet(table);
|
||||
@ -2029,14 +2032,14 @@ describe('corner cases', function() {
|
||||
});
|
||||
it('SSF', function() {
|
||||
X.SSF.format("General", "dafuq");
|
||||
assert.throws(function(x) { return X.SSF.format("General", {sheet:"js"});});
|
||||
assert.throws(function() { return X.SSF.format("General", {sheet:"js"});});
|
||||
X.SSF.format("b e ddd hh AM/PM", 41722.4097222222);
|
||||
X.SSF.format("b ddd hh m", 41722.4097222222);
|
||||
["hhh","hhh A/P","hhmmm","sss","[hhh]","G eneral"].forEach(function(f) {
|
||||
assert.throws(function(x) { return X.SSF.format(f, 12345.6789);});
|
||||
assert.throws(function() { return X.SSF.format(f, 12345.6789);});
|
||||
});
|
||||
["[m]","[s]"].forEach(function(f) {
|
||||
assert.doesNotThrow(function(x) { return X.SSF.format(f, 12345.6789);});
|
||||
assert.doesNotThrow(function() { return X.SSF.format(f, 12345.6789);});
|
||||
});
|
||||
});
|
||||
if(typeof JSON !== 'undefined') it('SSF oddities', function() {
|
||||
|
26
xlsx.core.min.js
vendored
26
xlsx.core.min.js
vendored
File diff suppressed because one or more lines are too long
30
xlsx.full.min.js
vendored
30
xlsx.full.min.js
vendored
File diff suppressed because one or more lines are too long
75
xlsx.js
75
xlsx.js
@ -4,7 +4,7 @@
|
||||
/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */
|
||||
var XLSX = {};
|
||||
(function make_xlsx(XLSX){
|
||||
XLSX.version = '0.11.18';
|
||||
XLSX.version = '0.11.19';
|
||||
var current_codepage = 1200, current_ansi = 1252;
|
||||
/*global cptable:true */
|
||||
if(typeof module !== "undefined" && typeof require !== 'undefined') {
|
||||
@ -140,11 +140,16 @@ function s2ab(s) {
|
||||
return buf;
|
||||
}
|
||||
|
||||
function arr2str(data) {
|
||||
function a2s(data) {
|
||||
if(Array.isArray(data)) return data.map(_chr).join("");
|
||||
var o = []; for(var i = 0; i < data.length; ++i) o[i] = _chr(data[i]); return o.join("");
|
||||
}
|
||||
|
||||
function a2u(data) {
|
||||
if(typeof Uint8Array === 'undefined') throw new Error("Unsupported");
|
||||
return new Uint8Array(data);
|
||||
}
|
||||
|
||||
function ab2a(data) {
|
||||
if(typeof ArrayBuffer == 'undefined') throw new Error("Unsupported");
|
||||
if(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));
|
||||
@ -1782,6 +1787,39 @@ return exports;
|
||||
})();
|
||||
|
||||
if(typeof require !== 'undefined' && typeof module !== 'undefined' && typeof DO_NOT_EXPORT_CFB === 'undefined') { module.exports = CFB; }
|
||||
var _fs;
|
||||
if(typeof require !== 'undefined') try { _fs = require('fs'); } catch(e) {}
|
||||
|
||||
/* normalize data for blob ctor */
|
||||
function blobify(data) {
|
||||
if(typeof data === "string") return s2ab(data);
|
||||
if(Array.isArray(data)) return a2u(data);
|
||||
return data;
|
||||
}
|
||||
/* write or download file */
|
||||
function write_dl(fname, payload, enc) {
|
||||
/*global IE_SaveFile, Blob, navigator, saveAs, URL, document */
|
||||
if(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);
|
||||
var data = (enc == "utf8") ? utf8write(payload) : payload;
|
||||
if(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);
|
||||
if(typeof Blob !== 'undefined') {
|
||||
var blob = new Blob([blobify(data)], {type:"application/octet-stream"});
|
||||
if(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);
|
||||
if(typeof saveAs !== 'undefined') return saveAs(blob, fname);
|
||||
if(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {
|
||||
var a = document.createElement("a");
|
||||
if(a.download != null) {
|
||||
var url = URL.createObjectURL(blob);
|
||||
a.download = fname; a.href = url; document.body.appendChild(a); a.click();
|
||||
document.body.removeChild(a);
|
||||
if(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);
|
||||
return url;
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new Error("cannot initiate download");
|
||||
}
|
||||
|
||||
function keys(o) { return Object.keys(o); }
|
||||
|
||||
function evert_key(obj, key) {
|
||||
@ -1973,13 +2011,12 @@ function getzipstr(zip, file, safe) {
|
||||
try { return getzipstr(zip, file); } catch(e) { return null; }
|
||||
}
|
||||
|
||||
var _fs, jszip;
|
||||
var jszip;
|
||||
/*global JSZip:true */
|
||||
if(typeof JSZip !== 'undefined') jszip = JSZip;
|
||||
if (typeof exports !== 'undefined') {
|
||||
if (typeof module !== 'undefined' && module.exports) {
|
||||
if(typeof exports !== 'undefined') {
|
||||
if(typeof module !== 'undefined' && module.exports) {
|
||||
if(typeof jszip === 'undefined') jszip = require('./jszip.js');
|
||||
try { _fs = require('fs'); } catch(e) { }
|
||||
}
|
||||
}
|
||||
|
||||
@ -13286,6 +13323,7 @@ function check_wb_names(N) {
|
||||
}
|
||||
function check_wb(wb) {
|
||||
if(!wb || !wb.SheetNames || !wb.Sheets) throw new Error("Invalid Workbook");
|
||||
if(!wb.SheetNames.length) throw new Error("Workbook is empty");
|
||||
check_wb_names(wb.SheetNames);
|
||||
/* TODO: validate workbook */
|
||||
}
|
||||
@ -14723,7 +14761,7 @@ function parse_xlml(data, opts) {
|
||||
switch(opts.type||"base64") {
|
||||
case "base64": return parse_xlml_xml(Base64.decode(data), opts);
|
||||
case "binary": case "buffer": case "file": return parse_xlml_xml(data, opts);
|
||||
case "array": return parse_xlml_xml(arr2str(data), opts);
|
||||
case "array": return parse_xlml_xml(a2s(data), opts);
|
||||
}
|
||||
}
|
||||
|
||||
@ -17536,9 +17574,9 @@ var HTML_ = (function() {
|
||||
var preamble = "<tr>";
|
||||
return preamble + oo.join("") + "</tr>";
|
||||
}
|
||||
function make_html_preamble() {
|
||||
function make_html_preamble(ws, R, o) {
|
||||
var out = [];
|
||||
return out.join("") + '<table>';
|
||||
return out.join("") + '<table' + (o && o.id ? ' id="' + o.id + '"' : "") + '>';
|
||||
}
|
||||
var _BEGIN = '<html><head><meta charset="utf-8"/><title>SheetJS Table Export</title></head><body>';
|
||||
var _END = '</body></html>';
|
||||
@ -18899,7 +18937,6 @@ function readSync(data, opts) {
|
||||
case 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);
|
||||
}
|
||||
if(n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);
|
||||
if(0x20>n[0]||n[0]>0x7F) throw new Error("Unsupported file " + n.join("|"));
|
||||
return read_prn(data, d, o, str);
|
||||
}
|
||||
|
||||
@ -18915,12 +18952,12 @@ function write_zip_type(wb, opts) {
|
||||
switch(o.type) {
|
||||
case "base64": oopts.type = "base64"; break;
|
||||
case "binary": oopts.type = "string"; break;
|
||||
case "string": throw new Error("'string' output type invalid for '" + o.bookType + ' files');
|
||||
case "string": throw new Error("'string' output type invalid for '" + o.bookType + "' files");
|
||||
case "buffer":
|
||||
case "file": oopts.type = "nodebuffer"; break;
|
||||
case "file": oopts.type = has_buf ? "nodebuffer" : "string"; break;
|
||||
default: throw new Error("Unrecognized type " + o.type);
|
||||
}
|
||||
if(o.type === "file") return _fs.writeFileSync(o.file, z.generate(oopts));
|
||||
if(o.type === "file") return write_dl(o.file, z.generate(oopts));
|
||||
var out = z.generate(oopts);
|
||||
// $FlowIgnore
|
||||
return o.type == "string" ? utf8read(out) : out;
|
||||
@ -18932,8 +18969,8 @@ function write_cfb_type(wb, opts) {
|
||||
switch(o.type) {
|
||||
case "base64": case "binary": break;
|
||||
case "buffer": case "array": o.type = ""; break;
|
||||
case "file": return _fs.writeFileSync(o.file, CFB.write(cfb, {type:'buffer'}));
|
||||
case "string": throw new Error("'string' output type invalid for '" + o.bookType + ' files');
|
||||
case "file": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : ""}));
|
||||
case "string": throw new Error("'string' output type invalid for '" + o.bookType + "' files");
|
||||
default: throw new Error("Unrecognized type " + o.type);
|
||||
}
|
||||
return CFB.write(cfb, o);
|
||||
@ -18946,7 +18983,7 @@ function write_string_type(out, opts, bom) {
|
||||
case "base64": return Base64.encode(utf8write(o));
|
||||
case "binary": return utf8write(o);
|
||||
case "string": return out;
|
||||
case "file": return _fs.writeFileSync(opts.file, o, 'utf8');
|
||||
case "file": return write_dl(opts.file, o, 'utf8');
|
||||
case "buffer": {
|
||||
if(has_buf) return new Buffer(o, 'utf8');
|
||||
else return write_string_type(o, {type:'binary'}).split("").map(function(c) { return c.charCodeAt(0); });
|
||||
@ -18960,7 +18997,7 @@ function write_stxt_type(out, opts) {
|
||||
case "base64": return Base64.encode(out);
|
||||
case "binary": return out;
|
||||
case "string": return out; /* override in sheet_to_txt */
|
||||
case "file": return _fs.writeFileSync(opts.file, out, 'binary');
|
||||
case "file": return write_dl(opts.file, out, 'binary');
|
||||
case "buffer": {
|
||||
if(has_buf) return new Buffer(out, 'binary');
|
||||
else return out.split("").map(function(c) { return c.charCodeAt(0); });
|
||||
@ -18979,7 +19016,7 @@ function write_binary_type(out, opts) {
|
||||
// $FlowIgnore
|
||||
for(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);
|
||||
return opts.type == 'base64' ? Base64.encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;
|
||||
case "file": return _fs.writeFileSync(opts.file, out);
|
||||
case "file": return write_dl(opts.file, out);
|
||||
case "buffer": return out;
|
||||
default: throw new Error("Unrecognized type " + opts.type);
|
||||
}
|
||||
@ -19182,7 +19219,7 @@ function sheet_to_txt(sheet, opts) {
|
||||
var s = sheet_to_csv(sheet, opts);
|
||||
if(typeof cptable == 'undefined' || opts.type == 'string') return s;
|
||||
var o = cptable.utils.encode(1200, s, 'str');
|
||||
return "\xff\xfe" + o;
|
||||
return String.fromCharCode(255) + String.fromCharCode(254) + o;
|
||||
}
|
||||
|
||||
function sheet_to_formulae(sheet) {
|
||||
|
Loading…
Reference in New Issue
Block a user