read-excel-file
Version:
Read `.xlsx` files in a web browser or in Node.js
39 lines (37 loc) • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = readSheet;
var _browser = _interopRequireDefault(require("worker-f/browser"));
var _parseXml = _interopRequireDefault(require("../xml/parseXml.js"));
var _unpackXlsxFileBrowser = _interopRequireDefault(require("./unpackXlsxFileBrowser.js"));
var _parseSheet = _interopRequireDefault(require("./parseSheet.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
// Unzipper is multi-threaded and it spawns a separate worker for each individual file
// inside the archive that is large-enough to justify spawning a worker.
// Because it uses its own `Worker` implementation, it won't use `createWorkerFunction()`.
//
// XML parser is itself single-threaded but it could spawn a separate worker for each
// individual `.xml` file that is large-enough to justify spawning a worker.
// So it could use `createWorkerFunction()`.
//
/**
* Reads a single sheet from an `.xlsx` file.
* @param {(File|Blob|ArrayBuffer)} input
* @param {(number|string)} [sheet] — Sheet number or sheet name
* @param {object} [options]
* @return {Promise<SheetData>}
*/
function readSheet(input, sheet, options) {
// `sheet` argument is optional.
// It could be omitted while `options` argument is passed.
if (!options && sheet && typeof sheet !== 'number' && typeof sheet !== 'string') {
options = sheet;
sheet = undefined;
}
return (0, _unpackXlsxFileBrowser["default"])(input).then(function (contents) {
return (0, _parseSheet["default"])(_browser["default"], _parseXml["default"], contents, sheet, options);
});
}
//# sourceMappingURL=readSheetWebWorker.js.map