第二个需求,把
SUM(A1,A3:A5)+A8 这样的excel公式解析成
A1+A3+A4+A5+A8不胜感激额。
SUM(A1,A3:A5)+A8 这样的excel公式解析成
A1+A3+A4+A5+A8不胜感激额。
解决方案 »
- 在form的submit中使用ajax提交数据时无响应?????
- javascript中如何把表单值转成double型,然后进行运算处理,返回结果?
- 超链的文字说明显示到指定位置?
- 梅花雪树改变某个节点的图片
- 【原创】Jquery Dom事件函数应用实例
- 函数参数传入子函数不成功,请问怎么回事
- 我现在一个画面有3M大,怎么才能快速把这个3M大的画面变成一个空白画面.
- 代码第2行怎么让window.onload执行xxx.js文件?
- 这个功能好像网上很常见,但不知怎么实现,希望各位指点迷津
- 我是一个新手,请多多指教!!!
- js 中如何将 <br> 替换成 \n
- 这个改变style的方式怎么rip出来?
var a="(sheet2!A8 + sheet3!B8)/sheet4!AA12*E5"
var b=a.replace(/(sheet)?([0-9]+)?(?:!?)([A-Z]+)([0-9]+)/g,"YS(tempid,$1$2,$3,$4)")
var c=b.replace(/YS\(tempid,,/,"YS\(tempid,sheetname,")
alert(c)//弹出(YS(tempid,sheet2,A,8) + YS(tempid,sheet3,B,8))/YS(tempid,sheet4,AA,12)*YS(tempid,sheetname,E,5)第二个
var a="SUM(A1,A3:A5)+A8"
var b=a.replace(/SUM\(([A-Z]+[0-9]+),([A-Z]+[0-9]+):([A-Z]+[0-9]+)\)\+([A-Z]+[0-9]+)/g,"$1+$2+$3+$4")
alert(b)楼主是不是写错了? 怎么来了个A4??方法不是很简洁 期待高手方法
<script>
var str = '(sheet2!A8 + sheet3!B8)/sheet4!AA12*E5';
//var reg = /(\w+)!(\D+)(\d+)|\*(\D+)(\d+)/g;
var reg = /^\((\w+)!(\D+)(\d+)\s*\+\s*(\w+)!(\D+)(\d+)\)\/(\w+)!(\D+)(\d+)\*(\D+)(\d+)$/;
str = str.replace(reg, '(YS(tempid,$1,$2,$3) + YS(tempid,$4,$5,$6))/YS(tempid,$7,$8,$9)*YS(tempid,sheetname,$10,$11)');
alert(str);
</script>
<script>
var str = '(sheet2!A8 + sheet3!B8)/sheet4!AA12*E5';
//var reg = /(\w+)!(\D+)(\d+)|\*(\D+)(\d+)/g;
var reg = /^\((\w+)!(\D+)(\d+)\s*\+\s*(\w+)!(\D+)(\d+)\)\/(\w+)!(\D+)(\d+)\*(\D+)(\d+)$/;
str = str.replace(reg, '(YS(tempid,$1,$2,$3) + YS(tempid,$4,$5,$6))/YS(tempid,$7,$8,$9)*YS(tempid,sheetname,$10,$11)');
alert(str);
</script>
没错。EXCEL的公式 sum(D3:D6) = D3+D4+D5+D6 不是吗? 呵呵
sheetname不是固定sheet1的样式,是任意字符。比如说 工资表!D4,比如说,库存表!AB12
<script>
var str = 'SUM(A1,A3:A5)+A8';
var reg = /[\w:]+/ig, arr = str.match(reg), sum = '';
arr.shift();
arr[1]=s(arr[1]);
alert(arr.join('+'));
function s(str){
var arr= str.split(':'), s = arr[0].charAt(0),a=arr[0].charAt(1), b = arr[1].charAt(1);
if(a==b)return;
var tem='';
while(a<b){
tem+= s+(a++)+'+';
}
return tem+arr[1];
}
</script>
(工资表!A8 + 奖金表!B8)/sheet4!AA12*E5解析成(YS(tempid,工资表,A,8) + YS(tempid,奖金表,B,8))/YS(tempid,sheet4,AA,12)*YS(tempid,sheetname,E,5)
var b=a.replace(/([\u4e00-\u9fa5a-zA-Z0-9]+){1}(?:[!]{1})([A-Z]+)(\d+)|\*(\d)/g,"YS(tempid,$1,$2,$3)")
var c=b.replace(/\*(\D)(\d)/,"*YS\(tempid,sheetname,$1,$2)")
alert(c)
比如 公式是A3 - SUM(A1,B1:F1)+A8我先自己写着44,同时也期盼高手给出绝佳答案。