кейкай (Серия из 5 частей)
У моей коллеги Мишель из финансовой группы есть обычная работа; она должна еженедельно публиковать бюджетный отчет. Раньше ей приходилось запрашивать бюджетные данные из базы данных. Затем заполните бюджетные данные вручную на листе шаблона следующим образом:
Поскольку это рутинная задача, я чувствую, что могу помочь ей, автоматизировав процесс подачи данных, чтобы ей не приходилось делать это вручную и неоднократно.
Другая проблема заключается в том, что она публикует бюджетный отчет в качестве приложения. Читатели должны загрузить файл, чтобы просмотреть содержимое на устройстве, готовом к работе с Excel. Кроме того, трудно контролировать, куда попадает вложение, она должна удалить все конфиденциальные и необработанные данные перед их отправкой.
Чтобы решить вышеуказанные проблемы, я создал веб-страницу с компонентом веб-таблиц/| Keikai . Keikai позволяет мне повторно использовать существующий шаблон бюджета Excel, так что мне не нужно создавать все с нуля. Также важно, что я могу управлять им с помощью Java.
Для начала я загрузил лист шаблона Excel в Keikai, чтобы показать его в браузере:
Такая страница была создана ZUL , языком формата XML из ZK framework :
Но вы также можете использовать Keikai с JSP .
Тег <электронная таблица> представляет электронную таблицу Kekkai, и я могу настроить Keikai с помощью атрибутов тега.
Когда пользователь посещает http://localhost:8080/database.zul , kekkai ответит набором javascript и CSS и отобразит файл содержимого в браузере.
Для того, чтобы загрузить данные из базы данных, я создал Expense.java для хранения каждой записи и ExpenseDao.java для запроса и обновления базы данных.
Затем я реализовал класс контроллера Java для заполнения данных из базы данных. Контроллер должен расширить СелекторКомпозер чтобы он мог вводить электронную таблицу объекты для меня.
public class BudgetComposer extends SelectorComposer{ @Wire private Spreadsheet spreadsheet; ... }
@Wire может вводить объект Электронная таблица на страницу, поэтому я не вызывал никаких конструкторов, таких как новая электронная таблица() .
API диапазона
Затем мне нужно было поместить данные в ячейки с помощью Диапазон . Один Диапазон объект может представлять одну или несколько ячеек/строк/столбцов или даже один лист. Я могу получить объект Диапазон с помощью заводского метода Диапазоны.диапазон (целевой лист листа, int RowIndex, int ColumnIndex) . Например, Диапазоны.диапазон(текущий лист, 0, 0) представляет A1 .
Чтобы отобразить данные в ячейке, просто вызовите range.setCellValue() . Таким образом, код довольно прост. После запроса списка Расходов я могу заполнить данные в ячейки в цикле, например:
private void fillExpenses(Listlist) { for (int i = 0; i < list.size(); i++) { Expense expense = list.get(i); Ranges.range(spreadsheet.getSelectedSheet(), START_ROW + i, 1) .setCellValue(expense.getQuantity()); Ranges.range(spreadsheet.getSelectedSheet(), START_ROW + i, 2) .setCellValue(expense.getSubtotal()); } }
Я смог быстро превратить ручную процедуру Excel моего коллеги в автоматизированное веб-приложение. Теперь всякий раз, когда мы заходим на страницу бюджетного отчета, Keikai запрашивает данные и отображает их в шаблоне отчета, например:
Если вы сочтете эту статью интересной, на веб-сайте Keikai есть больше примеров и демонстраций . Или вы можете запустить пример проекта на github .
кейкай (Серия из 5 частей)
Оригинал: “https://dev.to/hawkchen/how-i-created-an-online-budget-report-from-excel-files-g3g”