read-excel-file
Version:
Read `.xlsx` files in a web browser or in Node.js
33 lines (32 loc) • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = unpackXlsxFile;
var _unzipFromArrayBuffer = _interopRequireDefault(require("../zip/unzipFromArrayBuffer.js"));
var _convertValuesFromUint8ArraysToStrings = _interopRequireDefault(require("./convertValuesFromUint8ArraysToStrings.js"));
var _filterZipArchiveEntry = _interopRequireDefault(require("./filterZipArchiveEntry.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
/**
* Unpacks `*.xlsx` file contents.
* An `.xlsx` file is really just a `.zip` archive with `.xml` files inside.
* @param {(Blob|ArrayBuffer)} input
* @return {Promise<Record<string,string>} Resolves to an object holding `*.xlsx` file entries.
*/
function unpackXlsxFile(input) {
return getArrayBuffer(input).then(function (arrayBuffer) {
return (0, _unzipFromArrayBuffer["default"])(arrayBuffer, {
filter: _filterZipArchiveEntry["default"]
});
}).then(_convertValuesFromUint8ArraysToStrings["default"]);
}
function getArrayBuffer(input) {
if (input instanceof Blob) {
return input.arrayBuffer();
}
if (input instanceof ArrayBuffer) {
return Promise.resolve(input);
}
throw new TypeError('Unuspported input. Expected a `Blob` or an `ArrayBuffer`');
}
//# sourceMappingURL=unpackXlsxFileUniversal.js.map