forked from sheetjs/sheetjs
		
	
		
			
	
	
		
			38 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | /* vim: set ts=2: */ | ||
|  | /*jshint loopfunc:true, mocha:true, node:true */ | ||
|  | /*eslint-env node, mocha */ | ||
|  | var XLSX = require("xlsx"), SSF = require("../"); | ||
|  | 
 | ||
|  | describe('rounding', function() { | ||
|  | 
 | ||
|  |   it('number', function() { | ||
|  |     var wb = XLSX.readFile("./test/rounding.xlsx", {cellNF: true, dense: true}); | ||
|  |     var data = wb.Sheets.number["!data"]; | ||
|  |     data.slice(1).forEach(function(r,R) { | ||
|  |       var val = data[R+1][0].v; | ||
|  |       var raw = parseFloat(data[R+1][1].v); | ||
|  |       r.slice(2).forEach(function(cell, C) { | ||
|  |         var fmt = data[0][C+2].v; | ||
|  |         var w = SSF.format(fmt, val); | ||
|  |         if(w != cell.v) throw ([R, C, val, fmt, cell.v, w].join("|")); | ||
|  |         var W = SSF.format(fmt, raw); | ||
|  |         if(W != cell.v) throw ([R, C, val, fmt, cell.v, W, "!!"].join("|")); | ||
|  |       }); | ||
|  |     }); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('date', function() { | ||
|  |     var wb = XLSX.readFile("./test/rounding.xlsx", {cellNF: true, dense: true}); | ||
|  |     var data = wb.Sheets.date["!data"]; | ||
|  |     data.slice(1).forEach(function(r,R) { | ||
|  |       var val = data[R+1][0].v; | ||
|  |       r.slice(1).forEach(function(cell, C) { | ||
|  |         var fmt = data[0][C+1].v; | ||
|  |         if(fmt == 'yyyy-mm-dd [hh]:mm:ss') return; // Format broken in excel 2007 - present
 | ||
|  |         var w = SSF.format(fmt, val); | ||
|  |         if(w != cell.v) throw([R, C, val, fmt, cell.v, w].join("|")); | ||
|  |       }); | ||
|  |     }); | ||
|  |   }); | ||
|  | 
 | ||
|  | }); |