forked from sheetjs/sheetjs
28 lines
1007 B
JavaScript
28 lines
1007 B
JavaScript
|
/* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||
|
/*global module, require, XLSX:true */
|
||
|
if(typeof require !== 'undefined' && typeof XLSX === 'undefined') XLSX = require('xlsx');
|
||
|
|
||
|
function generate_random_file(n) {
|
||
|
if(!n) n = 100;
|
||
|
var aoo = [];
|
||
|
var x_ = 0, y_ = 0, xx = 0, xy = 0;
|
||
|
for(var i = 0; i < n; ++i) {
|
||
|
var y = Math.fround(2 * i + Math.random());
|
||
|
aoo.push({x:i, y:y});
|
||
|
x_ += i / n; y_ += y / n; xx += i*i; xy += i * y;
|
||
|
}
|
||
|
var m = Math.fround((xy - n * x_ * y_)/(xx - n * x_ * x_));
|
||
|
console.log(m, Math.fround(y_ - m * x_), "JS Pre");
|
||
|
var ws = XLSX.utils.json_to_sheet(aoo);
|
||
|
var wb = XLSX.utils.book_new();
|
||
|
XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
|
||
|
ws = XLSX.utils.aoa_to_sheet([[2, 0]]);
|
||
|
XLSX.utils.sheet_set_array_formula(ws, "A1:B1", "LINEST(Sheet1!B2:B101,Sheet1!A2:A101)");
|
||
|
XLSX.utils.book_append_sheet(wb, ws, "Sheet2");
|
||
|
|
||
|
XLSX.writeFile(wb, "linreg.xlsx");
|
||
|
}
|
||
|
if(typeof module !== 'undefined') module.exports = {
|
||
|
generate_random_file: generate_random_file
|
||
|
};
|