read-excel-file
Version:
Read `.xlsx` files in a web browser or in Node.js
27 lines (26 loc) • 1.05 kB
JavaScript
import unzipFromArrayBuffer from '../zip/unzipFromArrayBuffer.js';
import convertValuesFromUint8ArraysToStrings from './convertValuesFromUint8ArraysToStrings.js';
import filterZipArchiveEntry from './filterZipArchiveEntry.js';
/**
* 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.
*/
export default function unpackXlsxFile(input) {
return getArrayBuffer(input).then(function (arrayBuffer) {
return unzipFromArrayBuffer(arrayBuffer, {
filter: filterZipArchiveEntry
});
}).then(convertValuesFromUint8ArraysToStrings);
}
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