forked from sheetjs/docs.sheetjs.com
		
	
		
			
	
	
		
			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]]); | ||
|  |     } | ||
|  |   }); | ||
|  | }; |