Как использовать электронную таблицу Excel в качестве механизма вычислений для приложения Java?

Механизм оценки достоверности фиксируется и поддерживается в электронной таблице Excel. Он принимает следующие параметры: возраст, доход, обязательства, профессию, образование и т. д. И возвращает некоторый балл (некоторое число).

Цель состоит в том, чтобы «выполнить» этот файл Excel из серверной части (Java).

Есть ли инструмент / фреймворк, который может удовлетворить эти потребности:

  1. преобразовать Excel в код Java (код, представляющий формулы Excel), чтобы я мог вводить параметры и запускать сгенерированный код
  2. загрузить Excel в память и оценить формулы (без сгенерированного кода)

Существует множество фреймворков для управления файлами Excel: для записи и чтения. Но нет ничего, что позволяло бы использовать электронную таблицу Excel в качестве механизма вычислений в бэк-энде,

Зачем тебе вообще это делать? Вы можете выполнить расчет каждый в своем коде. Перенос этих вычислений в Excel было бы огромной тратой времени, памяти и прочего

XtremeBaumer 13.04.2018 11:34

Я действительно не понимаю, какова твоя цель. Может быть, вы могли бы уточнить, какие расчеты и какие-то детали в отношении вашего проекта. Насколько я понимаю, вы хотите, чтобы деловые люди вели вычисления, в то время как разработчик не знает, что происходит. Что вам вообще нужно развить, если они будут вести свои расчеты в таблице Excel?

XtremeBaumer 13.04.2018 11:48

@XtremeBaumer Например - механизм оценки достоверности записан и поддерживается в файле Excel. Вы вводите в него следующие параметры: возраст, доход, обязательства, профессию, образование и т. д., И он возвращает некоторый балл (некоторое число). Цель состоит в том, чтобы выполнить его из серверной части.

robert 13.04.2018 12:01

Итак, у вас есть графический интерфейс, в котором бизнесмен передает параметр, нажимает кнопку и получает результат в виде файла Excel? Если это правда, как им вести расчеты?

XtremeBaumer 13.04.2018 12:03

@XtremeBaumer - Деловой человек открывает файл Excel, содержащий формальные данные, вводит некоторые параметры и получает число (оценку). Теперь подсчет очков - это ручной процесс, который можно автоматизировать.

robert 13.04.2018 12:11

Я думал, что подсчет очков в Excel "автоматизирован"?

XtremeBaumer 13.04.2018 12:13
stackoverflow.com/questions/2043614/…
max630 15.09.2019 08:05
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
7
1 406
3

Ответы 3

Думали ли вы о переносе всех ваших вычислений в Java, а затем в их возвращении в Excel, т. Е. У вас есть функция в Excel, которая вызывает тот же код Java для выполнения вычислений?

Вы можете писать функции Excel на Java, используя Jinx, https://exceljava.com.

Если мы перенесем вычисления на Java, то владелец продукта / бизнесмены не смогут их изменить. Они не понимают Java.

robert 14.08.2018 14:15

Не обращая внимания на то, является ли общая концепция хорошей идеей или нет, одним из вариантов было бы использовать Excel RTD, чтобы электронные таблицы отправляли данные в строковом формате на ваш сервер.

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

На самом деле это не должно быть слишком сложно, тем более, что макет и данные довольно просты. Это потребует дополнительных исследований с вашей стороны, но это должно послужить отправной точкой.

Проверь это: - Создайте файл 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" - это то место, где оно находится
    • "т" - это тип. «s» означает строку, которая будет в файле «sharedStrings.xml».
      • на следующий уровень глубже «worksheet / sheetData / row [0] / c [0] / v» вы увидите число ноль. Это позиция в XML в «sharedString.xml» по следующему пути «sst / si [] / t "где"» - это позиция.

    .

    • Для строк [2: 3] вы увидите введенные числа с их атрибутами.
    • В строке [4] вы увидите «../row[4 sizes/c/f» «SUM (A2: A3)», а для «../row[4estive/c/v») вы Вы увидите сумму введенных вами чисел.

Изучите все файлы XML и поэкспериментируйте.

Вы можете проанализировать, изменить XML и сохранить его, а затем изменить тип файла обратно на «.XLSX» или что-то еще.

Наслаждаться.

Другие вопросы по теме