如何使用Excel电子表格作为Java应用程序的计算引擎?

时间:2018-04-13 09:27:00

标签: java excel excel-formula

在Excel电子表格中捕获并维护可信度评级引擎。它接受以下参数:年龄,收入,负债,职业,教育等,并返回一些分数(某些数字)。

目标是"执行"来自后端(Java)的这个Excel文件。

是否有可以满足这些需求的工具/框架:

  1. 将Excel转换为Java代码(代表Excel公式的代码),以便我可以提供参数并运行生成的代码
  2. 将Excel加载到内存中并评估公式(无生成代码)
  3. 有很多框架可以管理Excel文件:写入和读取。 但是没有什么可以允许在后端使用Excel电子表格作为计算引擎,

3 个答案:

答案 0 :(得分:0)

您是否考虑过将所有计算移至Java,然后再将其公开给Excel-即Excel中有一个函数调用相同的Java代码进行计算?

您可以使用Jinx https://exceljava.com用Java编写Excel函数。

答案 1 :(得分:0)

忽略整体概念是否是一个好主意,一种选择是使用Excel RTD,使电子表格将字符串格式的数据推送到您的后端。

https://support.microsoft.com/en-us/help/289150/how-to-set-up-and-use-the-rtd-function-in-excel

答案 2 :(得分:0)

实际上应该不难,尤其是因为布局和数据非常简单。您将需要进一步的研究,但这应该作为一个起点。

检查一下:  -创建一个Excel文件

  • 在[A1:E1]中添加列:收入,负债,职业,教育。
  • 从[A2:E3]中输入随机数。
  • 在[A4]上,输入“ = Sum(A1:A3)”,然后在所有列中直接填充。
  • 将文件另存为“ xlsx”
  • 将“ .xlsx”更改为“ .rar”并打开压缩文件。
  • 您应该看到“ sharedStrings.xml”,“ calcChain.xml”,“ worksheets / sheet1.xml”。
  • 您将在“ sharedStrings.xml”中找到列标题
    • 此XML中没有属性或引用。
  • 在“ worksheets / sheet1.xml”中,您将看到以下路径=>“ worksheet / sheetData / row [0] / c”,其属性为“ r”和“ t”

    • “ r”就是它所在的位置
    • “ t”是它的类型。 “ s”表示字符串,将在“ sharedStrings.xml”文件中。
      • 更深一层的“ worksheet / sheetData / row [0] / c [0] / v”,您将看到数字零。这是XML在“ sharedString.xml”中在以下路径“ sst / si [] / t”处的位置,其中“ ”是位置。

    • 对于[2:3]行,您会看到输入的数字及其属性。
    • 在第[4]行中,您将看到“ ../row[4]/c/f”“ SUM(A2:A3)”,对于“ ../row[4]/c/v” ,您将看到输入的任何数字的总和。

浏览其中的所有XML文件并播放。

您可以解析,修改XML,然后保存它,然后将文件类型改回“ .XLSX”或其他名称。

享受。