forked from sheetjs/docs.sheetjs.com
		
	
		
			
				
	
	
		
			25 lines
		
	
	
		
			752 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			752 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
#!/usr/bin/env ruby
 | 
						|
# ExecSheetJS.rb (c) SheetJS LLC -- https://sheetjs.com
 | 
						|
require "execjs"
 | 
						|
require "base64"
 | 
						|
 | 
						|
source = File.open("xlsx.full.min.js", "rb").read();
 | 
						|
source.force_encoding("UTF-8");
 | 
						|
context = ExecJS.compile(source);
 | 
						|
puts context.eval("XLSX.version");
 | 
						|
 | 
						|
data = Base64.strict_encode64(File.open(ARGV[0], "rb").read);
 | 
						|
result = context.call(<<EOF, data);
 | 
						|
function(data) {
 | 
						|
  var wb = XLSX.read(data, {type: 'base64'});
 | 
						|
  var ws = wb.Sheets[wb.SheetNames[0]];
 | 
						|
  /* to avoid re-parsing, CSV and XLSB are written in the same call */
 | 
						|
  return [
 | 
						|
    XLSX.utils.sheet_to_csv(ws),
 | 
						|
    XLSX.write(wb, {bookType: "xlsb", type: "base64"})
 | 
						|
  ];
 | 
						|
}
 | 
						|
EOF
 | 
						|
puts result[0];
 | 
						|
xlsb = Base64.strict_decode64(result[1]);
 | 
						|
File.write("sheetjsw.xlsb", xlsb, mode: "wb"); |