Apache POI Excel - поиск и замена текста
Я работаю с системой разработки Java, которая включает в себя сохранение данных в файл Excel вместо сохранения в базе данных. Это было одним из требований клиента.
Я закончил создание файла Excel, используя Apache POI из Java, так что проблема с этим. Но теперь я хочу иметь более портативный способ сделать это.
Я хочу иметь шаблон Excel, таким образом, пользователь может создать свой собственный вывод. Данные будут вставлены в Excel путем замены заполнителя.
Моя проблема заключается в том, есть ли способ заменить текст в Excel с помощью Apache POI?
Спасибо!
1 ответ
Я не думаю, что в POI это встроено. Это низкоуровневый API для чтения и записи Excel в любой среде, даже в среде, где Excel не установлен и не может быть (работает только с двоичным форматом файлов). Таким образом, вы должны построить это самостоятельно, но не слишком сложно.
Сделал проект, в котором пользователь мог бы назвать ячейки с определенными значениями, а затем код будет искать их и использовать их в качестве подсказок, куда вставлять данные. Так что это возможно, но вам нужно придумать формат и написать код, чтобы пройти через первые n строк в зависимости от требований.
Раньше мы анализировали первые 10 строк и 50 столбцов, чтобы выяснить, куда поместить информацию заголовка, сводки и т. Д., А затем подробные данные и перейти к другому листу данных, содержащему более x строк. Это сработало настолько хорошо, что код, написанный для 1 отчета, можно было использовать для 2 других без изменений.
Для стороны базы данных - нужно было определить запросы и затем обратиться к ним в другом листе свойств.
Запись была что-то вроде этого
q1=select c1,c2 ... where c1=p1 and c2=p2
q2=select c1,c2,c3 from ... where c1 = p3
Где p1, p2, где параметры из конфигурации, среды и экрана.
Затем в листах, где были найдены символы {- и -} с идентификатором запроса и идентификатором столбца между ними, например:
{-q1.c1-}
проанализирует это, чтобы получить идентификатор запроса и номер столбца, если был только один результат, заменить его на месте (сводные данные), иначе заменить его там и в строках ниже.
Они также могут быть частью формулы Excel - формула будет недействительной, когда Excel создается пользователем, но после того, как мы заменим значения, они начнут работать.
Если в текущем Excel есть проблемы с размещением формулы неверности, вы можете принять шаблоны в таблице свойств - указать id столбца и номер строки, а также формулу Excel, включающую строки, которые должны быть заменены значениями вашей программы.