forked from sheetjs/sheetjs
		
	
		
			
	
	
		
			23 lines
		
	
	
		
			774 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			23 lines
		
	
	
		
			774 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | /* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */ | ||
|  | var XLSX = require('xlsx'); | ||
|  | var fs = require('fs'); | ||
|  | 
 | ||
|  | onmessage = function(e) { | ||
|  | 	try { switch(e.data.action) { | ||
|  | 		case 'write': | ||
|  | 			var ws = XLSX.utils.aoa_to_sheet(e.data.data); | ||
|  | 			var wb = XLSX.utils.book_new(); | ||
|  | 			XLSX.utils.book_append_sheet(wb, ws, "SheetJS"); | ||
|  | 			postMessage({data: XLSX.write(wb, {type:'binary', bookType:e.data.type || e.data.file.match(/\.([^\.]*)$/)[1]})}); | ||
|  | 			break; | ||
|  | 		case 'read': | ||
|  | 			var wb; | ||
|  | 			if(e.data.file) wb = XLSX.readFile(e.data.file); | ||
|  | 			else wb = XLSX.read(e.data.data); | ||
|  | 			var ws = wb.Sheets[wb.SheetNames[0]]; | ||
|  | 			postMessage({data: XLSX.utils.sheet_to_json(ws, {header:1})}); | ||
|  | 			break; | ||
|  | 		default: throw "unknown action"; | ||
|  | 	}} catch(e) { postMessage({err:e.message || e}); } | ||
|  | }; |