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]]);
 | 
						|
    }
 | 
						|
  });
 | 
						|
};
 |