forked from sheetjs/sheetjs
		
	
		
			
				
	
	
		
			85 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var strs = {}; // shared strings
 | 
						|
var _ssfopts = {}; // spreadsheet formatting options
 | 
						|
 | 
						|
RELS.WS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet";
 | 
						|
 | 
						|
function get_sst_id(sst, str) {
 | 
						|
	for(var i = 0, len = sst.length; i < len; ++i) if(sst[i].t === str) { sst.Count ++; return i; }
 | 
						|
	sst[len] = {t:str}; sst.Count ++; sst.Unique ++; return len;
 | 
						|
}
 | 
						|
 | 
						|
function get_cell_style(styles, cell, opts) {
 | 
						|
  if (typeof style_builder != 'undefined') {
 | 
						|
    if (/^\d+$/.exec(cell.s)) { return cell.s}  // if its already an integer index, let it be
 | 
						|
    if (cell.s && (cell.s == +cell.s)) { return cell.s}  // if its already an integer index, let it be
 | 
						|
    var s = cell.s || {};
 | 
						|
    if (cell.z) s.numFmt = cell.z;
 | 
						|
    return style_builder.addStyle(s);
 | 
						|
  }
 | 
						|
  else {
 | 
						|
    var z = opts.revssf[cell.z != null ? cell.z : "General"];
 | 
						|
    for(var i = 0, len = styles.length; i != len; ++i) if(styles[i].numFmtId === z) return i;
 | 
						|
    styles[len] = {
 | 
						|
      numFmtId:z,
 | 
						|
      fontId:0,
 | 
						|
      fillId:0,
 | 
						|
      borderId:0,
 | 
						|
      xfId:0,
 | 
						|
      applyNumberFormat:1
 | 
						|
    };
 | 
						|
    return len;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
function get_cell_style_csf(cellXf) {
 | 
						|
 | 
						|
  if (cellXf) {
 | 
						|
 | 
						|
    var s = {}
 | 
						|
 | 
						|
    if (typeof cellXf.numFmtId != undefined)  {
 | 
						|
      s.numFmt = SSF._table[cellXf.numFmtId];
 | 
						|
    }
 | 
						|
 | 
						|
    if(cellXf.fillId)  {
 | 
						|
      s.fill =  styles.Fills[cellXf.fillId];
 | 
						|
    }
 | 
						|
 | 
						|
    if (cellXf.fontId) {
 | 
						|
      s.font = styles.Fonts[cellXf.fontId];
 | 
						|
    }
 | 
						|
    if (cellXf.borderId) {
 | 
						|
      s.border = styles.Borders[cellXf.borderId];
 | 
						|
    }
 | 
						|
    if (cellXf.applyAlignment==1) {
 | 
						|
      s.alignment = cellXf.alignment;
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    return s;
 | 
						|
  }
 | 
						|
  return null;
 | 
						|
}
 | 
						|
 | 
						|
function safe_format(p, fmtid, fillid, opts) {
 | 
						|
	try {
 | 
						|
		if(p.t === 'e') p.w = p.w || BErr[p.v];
 | 
						|
		else if(fmtid === 0) {
 | 
						|
			if(p.t === 'n') {
 | 
						|
				if((p.v|0) === p.v) p.w = SSF._general_int(p.v,_ssfopts);
 | 
						|
				else p.w = SSF._general_num(p.v,_ssfopts);
 | 
						|
			}
 | 
						|
			else if(p.t === 'd') {
 | 
						|
				var dd = datenum(p.v);
 | 
						|
				if((dd|0) === dd) p.w = SSF._general_int(dd,_ssfopts);
 | 
						|
				else p.w = SSF._general_num(dd,_ssfopts);
 | 
						|
			}
 | 
						|
			else if(p.v === undefined) return "";
 | 
						|
			else p.w = SSF._general(p.v,_ssfopts);
 | 
						|
		}
 | 
						|
		else if(p.t === 'd') p.w = SSF.format(fmtid,datenum(p.v),_ssfopts);
 | 
						|
		else p.w = SSF.format(fmtid,p.v,_ssfopts);
 | 
						|
		if(opts.cellNF) p.z = SSF._table[fmtid];
 | 
						|
	} catch(e) { if(opts.WTF) throw e; }
 | 
						|
}
 |