Рубрики
Без рубрики

Как я создал онлайн-бюджетный отчет из файлов Excel

Проблемы при публикации файла Excel У моей коллеги Мишель из финансовой команды есть свой маршрут… Помеченный как java, электронная таблица, веб, excel.

кейкай (Серия из 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(List list) {
    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”