You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							53 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							53 lines
						
					
					
						
							1.4 KiB
						
					
					
				| "use strict";
 | |
| 
 | |
| var colCache = require('./col-cache'); // const cellRefRegex = /(([a-z_\-0-9]*)!)?[$]?([a-z]+)[$]?([1-9][0-9]*)/i;
 | |
| 
 | |
| 
 | |
| var replacementCandidateRx = /(([a-z_\-0-9]*)!)?([a-z0-9_$]{2,})([(])?/gi;
 | |
| var CRrx = /^([$])?([a-z]+)([$])?([1-9][0-9]*)$/i;
 | |
| 
 | |
| function slideFormula(formula, fromCell, toCell) {
 | |
|   var offset = colCache.decode(fromCell);
 | |
|   var to = colCache.decode(toCell);
 | |
|   return formula.replace(replacementCandidateRx, function (refMatch, sheet, sheetMaybe, addrPart, trailingParen) {
 | |
|     if (trailingParen) {
 | |
|       return refMatch;
 | |
|     }
 | |
| 
 | |
|     var match = CRrx.exec(addrPart);
 | |
| 
 | |
|     if (match) {
 | |
|       var colDollar = match[1];
 | |
|       var colStr = match[2].toUpperCase();
 | |
|       var rowDollar = match[3];
 | |
|       var rowStr = match[4];
 | |
| 
 | |
|       if (colStr.length > 3 || colStr.length === 3 && colStr > 'XFD') {
 | |
|         // > XFD is the highest col number in excel 2007 and beyond, so this is a named range
 | |
|         return refMatch;
 | |
|       }
 | |
| 
 | |
|       var col = colCache.l2n(colStr);
 | |
|       var row = parseInt(rowStr, 10);
 | |
| 
 | |
|       if (!colDollar) {
 | |
|         col += to.col - offset.col;
 | |
|       }
 | |
| 
 | |
|       if (!rowDollar) {
 | |
|         row += to.row - offset.row;
 | |
|       }
 | |
| 
 | |
|       var res = (sheet || '') + (colDollar || '') + colCache.n2l(col) + (rowDollar || '') + row;
 | |
|       return res;
 | |
|     }
 | |
| 
 | |
|     return refMatch;
 | |
|   });
 | |
| }
 | |
| 
 | |
| module.exports = {
 | |
|   slideFormula: slideFormula
 | |
| };
 | |
| //# sourceMappingURL=shared-formula.js.map
 |