execl执行linux命令,linux – Excel函数的命令行执行

libformula可能是一个很好的起点.这是概念证明:

$excel 'TRIM(" abc 123 ")'

abc 123

excel就是这个简单的shell脚本:

#!/bin/sh

java -cp /usr/share/java/commons-logging.jar:libformula/demo:libbase/dist/libbase-6.1-SNAPSHOT.jar:libformula/dist/libformula-6.1-SNAPSHOT.jar:/home/cwarden/git/excel/src org.xerus.excel.Excel "$1"

和org.xerus.excel.Excel从argv获取一个字符串并将其作为公式计算:

package org.xerus.excel;

import org.pentaho.reporting.libraries.formula.EvaluationException;

import org.pentaho.reporting.libraries.formula.Formula;

import org.pentaho.reporting.libraries.formula.DefaultFormulaContext;

import org.pentaho.reporting.libraries.formula.parser.ParseException;

public class Excel {

public static void main(final String[] args) throws ParseException,EvaluationException {

final Formula f = new Formula(args[0]);

f.initialize(new DefaultFormulaContext());

final Object o = f.evaluate();

System.out.println(o);

}

}

libformula包含一个演示程序org.pentaho.reporting.libraries.formula.demo.PrintAllFunctions,它打印出所有支持的函数:

Category User-Defined

ARRAYCONCATENATE,ARRAYCONTAINS,ARRAYLEFT,ARRAYMID,CSVARRAY,CSVTEXT,NORMALIZEARRAY,NULL,PARSEDATE,SEQUENCEQUOTER

Category Information

CHOOSE,COUNT,COUNTA,COUNTBLANK,ERROR,HASCHANGED,INDEX,ISBLANK,ISERR,ISERROR,ISEVEN,ISLOGICAL,ISNA,ISNONTEXT,ISNUMBER,ISODD,ISREF,ISTEXT,LOOKUP,NA,VALUE

Category Rounding

INT

Category Mathematical

ABS,ACOS,ACOSH,ASIN,atan,atan2,AVERAGE,AVERAGEA,COS,EVEN,EXP,LN,LOG10,MAX,MAXA,MIN,MINA,MOD,N,ODD,PI,POWER,SIN,SQRT,SUM,SUMA,VAR

Category Text

ARRAYRIGHT,ASC,CHAR,CLEAN,CODE,CONCATENATE,EXACT,FIND,FIXED,LEFT,LEN,LOWER,MESSAGE,MID,PROPER,REPLACE,REPT,RIGHT,SEARCH,STRINGCOUNT,SUBSTITUTE,T,TEXT,TRIM,UNICHAR,UNICODE,UPPER,URLENCODE

Category Date/Time

DATE,DATEDIF,DATETIMEVALUE,DATEVALUE,DAY,DAYS,HOUR,MINUTE,MONTH,MONTHEND,NOW,PREVWEEKDAY,SECOND,TIME,TIMEVALUE,TODAY,WEEKDAY,YEAR,YESTERDAY

Category Logical

AND,FALSE,IF,IFNA,NOT,OR,TRUE,XOR

Category Database

BEGINSWITH,CONTAINS,ENDSWITH,EQUALS,IN,LIKE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值