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