forked from sheetjs/sheetjs
SheetJS
08bb7e6e60
- `writeFile` support chrome extension (fixes #1051 h/t @atkinsam) - demo refresh
28 lines
903 B
JavaScript
28 lines
903 B
JavaScript
/* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
|
/* eslint-env browser */
|
|
/* global XLSX, chrome */
|
|
var coords = [0,0];
|
|
document.addEventListener('mousedown', function(mouse) {
|
|
if(mouse && mouse.button == 2) coords = [mouse.clientX, mouse.clientY];
|
|
});
|
|
|
|
chrome.runtime.onMessage.addListener(function(msg, sender, cb) {
|
|
if(!msg && !msg['Sheet']) return;
|
|
if(msg.Sheet == "JS") {
|
|
var elt = document.elementFromPoint(coords[0], coords[1]);
|
|
while(elt != null) {
|
|
if(elt.tagName.toLowerCase() == "table") return cb(XLSX.utils.table_to_book(elt));
|
|
elt = elt.parentElement;
|
|
}
|
|
} else if(msg.Sheet == "J5") {
|
|
var tables = document.getElementsByTagName("table");
|
|
var wb = XLSX.utils.book_new();
|
|
for(var i = 0; i < tables.length; ++i) {
|
|
var ws = XLSX.utils.table_to_sheet(tables[i]);
|
|
XLSX.utils.book_append_sheet(wb, ws, "Table" + i);
|
|
}
|
|
return cb(wb);
|
|
}
|
|
cb(coords);
|
|
});
|