22 lines
641 B
JavaScript
22 lines
641 B
JavaScript
const XLSX = require("xlsx");
|
|
|
|
/* list of file extensions */
|
|
const exts = [ "numbers", "xlsx", "xlsb", "xls" ].join(", ");
|
|
|
|
module.exports = (eleventyConfig) => {
|
|
eleventyConfig.addDataExtension(exts, {
|
|
/* read file and pass raw Buffer object to parser */
|
|
// highlight-next-line
|
|
encoding: null, read: true,
|
|
|
|
/* parser callback */
|
|
parser: (contents) => {
|
|
/* contents is the data stored as a Buffer */
|
|
// highlight-next-line
|
|
const wb = XLSX.read(contents);
|
|
/* generate array of row objects from first worksheet */
|
|
return XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]);
|
|
}
|
|
});
|
|
};
|