forked from sheetjs/sheetjs
		
	- BIFF 2-12 formula parsing - more content type coverage - unified `.f` form: A1-style string - `.F` field for array formulae - formula output groups array formulae - bin script -A --arrays output JS row objects - whitespace robustness in inline string xml - UTF-8 parsing in rich text runs (fixes #505 h/t @fuchsc) - bold/italic/underline accept null val attr (h/t @qqilihq) - sst trimming (fixes #176 h/t @shakhal @oising)
		
			
				
	
	
		
			34 lines
		
	
	
		
			747 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			747 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* XLS ranges enforced */
 | 
						|
function shift_cell_xls(cell, tgt, opts) {
 | 
						|
	var out = dup(cell);
 | 
						|
	if(tgt.s) {
 | 
						|
		if(out.cRel) out.c += tgt.s.c;
 | 
						|
		if(out.rRel) out.r += tgt.s.r;
 | 
						|
	} else {
 | 
						|
		out.c += tgt.c;
 | 
						|
		out.r += tgt.r;
 | 
						|
	}
 | 
						|
	if(!opts || opts.biff < 12) {
 | 
						|
		while(out.c >= 0x100) out.c -= 0x100;
 | 
						|
		while(out.r >= 0x10000) out.r -= 0x10000;
 | 
						|
	}
 | 
						|
	return out;
 | 
						|
}
 | 
						|
 | 
						|
function shift_range_xls(cell, range) {
 | 
						|
	cell.s = shift_cell_xls(cell.s, range.s);
 | 
						|
	cell.e = shift_cell_xls(cell.e, range.s);
 | 
						|
	return cell;
 | 
						|
}
 | 
						|
 | 
						|
function encode_cell_xls(c)/*:string*/ {
 | 
						|
	var s = encode_cell(c);
 | 
						|
	if(c.cRel === 0) s = fix_col(s);
 | 
						|
	if(c.rRel === 0) s = fix_row(s);
 | 
						|
	return s;
 | 
						|
}
 | 
						|
 | 
						|
function encode_range_xls(r)/*:string*/ {
 | 
						|
	return encode_cell_xls(r.s) + ":" + encode_cell_xls(r.e);
 | 
						|
}
 |