加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – Excel函数的命令行执行

发布时间:2020-12-13 22:56:51 所属栏目:Linux 来源:网络整理
导读:可以从命令行调用Excel函数吗? 我不想与任何文件进行任何交互.我只想像其他命令行工具一样使用这些函数.它应该仅用于一些一次性目的. 例如,如果有办法做这样的事情,我会喜欢它: $excel roman(15)XV$excel randbetween(10,20)14 当然,并非所有可用的功能都
可以从命令行调用Excel函数吗?

我不想与任何文件进行任何交互.我只想像其他命令行工具一样使用这些函数.它应该仅用于一些一次性目的.

例如,如果有办法做这样的事情,我会喜欢它:

$excel roman(15)
XV

$excel randbetween(10,20)
14

当然,并非所有可用的功能都可以像这样运行,但越多越好.

>是否存在任何本机应用程序(在Linux或Windows上,但最好是跨平台)
提供这种选择?
>或者我们有什么方法可以操纵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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读