forked from sheetjs/sheetjs
		
	
		
			
	
	
		
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								#!/usr/bin/env node
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var XLSX = require('../xlsx');
							 | 
						||
| 
								 | 
							
								var utils = XLSX.utils;
							 | 
						||
| 
								 | 
							
								var filename = process.argv[2];
							 | 
						||
| 
								 | 
							
								if(!filename || filename == "-h" || filename === "--help") {
							 | 
						||
| 
								 | 
							
									console.log("usage:",process.argv[1],"<workbook> [sheet]");
							 | 
						||
| 
								 | 
							
									console.log("  when sheet = :list, print a list of sheets in the workbook");
							 | 
						||
| 
								 | 
							
									process.exit(0);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								var fs = require('fs');
							 | 
						||
| 
								 | 
							
								if(!fs.existsSync(filename)) {
							 | 
						||
| 
								 | 
							
									console.error("error:",filename,"does not exist!");
							 | 
						||
| 
								 | 
							
									process.exit(1);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								var xlsx = XLSX.readFile(filename);
							 | 
						||
| 
								 | 
							
								var sheetname = process.argv[3] || xlsx.SheetNames[0];
							 | 
						||
| 
								 | 
							
								if(sheetname === ":list") {
							 | 
						||
| 
								 | 
							
									xlsx.SheetNames.forEach(function(x) { console.log(x); });
							 | 
						||
| 
								 | 
							
									process.exit(0);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								if(xlsx.SheetNames.indexOf(sheetname)===-1) {
							 | 
						||
| 
								 | 
							
									console.error("Sheet", sheetname, "not found in", filename, ".  I see:");
							 | 
						||
| 
								 | 
							
									xlsx.SheetNames.forEach(function(x) { console.error(" - " + x); });
							 | 
						||
| 
								 | 
							
									process.exit(1);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function stringify(val) {
							 | 
						||
| 
								 | 
							
									switch(val.t){
							 | 
						||
| 
								 | 
							
										case 'n': return val.v;
							 | 
						||
| 
								 | 
							
										case 's': case 'str': return JSON.stringify(val.v);
							 | 
						||
| 
								 | 
							
										default: throw 'unrecognized type ' + val.t;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								var sheet = xlsx.Sheets[sheetname];
							 | 
						||
| 
								 | 
							
								if(sheet["!ref"]) {
							 | 
						||
| 
								 | 
							
									var r = utils.decode_range(sheet["!ref"]);
							 | 
						||
| 
								 | 
							
									for(var R = r.s.r; R <= r.e.r; ++R) { 
							 | 
						||
| 
								 | 
							
										var row = [];
							 | 
						||
| 
								 | 
							
										for(var C = r.s.c; C <= r.e.c; ++C) {
							 | 
						||
| 
								 | 
							
											var val = sheet[utils.encode_cell({c:C,r:R})];
							 | 
						||
| 
								 | 
							
											row.push(val ? stringify(val) : "");
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										console.log(row.join(","));
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |