Java Spring - написание файла Excel и преобразование в PDF - PullRequest
0 голосов
/ 21 мая 2018

Я надеюсь, что кто-то может помочь мне с этой проблемой.В настоящее время я работаю в проекте Java Spring (у меня нет опыта работы с Java), и нам нужен сервис для обновления шаблона Excel с некоторыми данными и преобразования его в PDF.В следующем коде я использую JFileChooser, чтобы позволить мне выбрать файл Template_RH для редактирования.После того, как я закончу писать, генерируется новый «Template_RH_updated».

public class GenerateExcel {

public static void fillTable(List<ReportTable> table, Employee employee, String headerMonth) {

    JFileChooser fileChooser = new JFileChooser();
    int click = fileChooser.showOpenDialog(null);
    if(click == JFileChooser.APPROVE_OPTION) {

        try {
            Workbook workbook = new HSSFWorkbook( new FileInputStream(fileChooser.getSelectedFile()));
            Sheet sheet = workbook.getSheetAt(0);

            //HERE WE HAVE THE CODE TO WRITE IN THE EXCEL FILE
            // AFTER WE ARE DONE WRITING IN THE FILE

            FileOutputStream outFile =new FileOutputStream(new File("Template_RH_updated.xls"));
            workbook.write(outFile);
            outFile.close();


        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

Первая проблема заключается в том, что я хотел избавиться от JFileChooser.Я хотел получить файл из самого проекта.Я добавил файл шаблона в проект в:

/ myProject / src / main / resources / file / Template_RH.xls

Но использование:

FileInputStream file = new FileInputStream("/myProject/src/main/resources/file/Template_RH.xls");

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

Мой последний вопрос: знает ли кто-нибудь, как преобразовать этот файл Excel в PDF.Если есть какая-либо библиотека, которая не может помочь мне с этой задачей.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Поскольку вы используете Spring, я предлагаю вам загрузить файл, как показано ниже.

Путь к папке в вашем проекте, давайте предположим, что ваша структура проекта src / main / java -> содержит пакетsructure com / aol / app / src / main / resources -> содержит структуру папок, аналогичную приведенной выше com / aol / app / resources -> где находятся ваши файлы, ниже пути к папке ресурсов.

public static final String FILE_CLASSPATH_RESOURCE = "com/aol/app/resources/";

Следующее использование org.springframework.core.io.Resource и org.springframework.core.io.ClassPathResource для загрузки файлов, обратите внимание: это может быть любой ресурс.

Resource resource = new ClassPathResource(FILE_CLASSPATH_RESOURCE + fileName);

После того, как ресурс загружен, вы можете теперь использовать поток для генерации pdf с использованием apache poi.

InputStream is = resource.getInputStream();

Поскольку вы упомянули, у вас мало воздействияна Java, я предлагаю вам перейти по ссылкам ниже, которые показывают вам, как работать в Excel и PDF.

http://www.baeldung.com/java-microsoft-excel
https://aboullaite.me/spring-boot-excel-csv-and-pdf-view-example/
http://www.baeldung.com/java-pdf-creation
0 голосов
/ 21 мая 2018

Попробуйте:

InputStream stream = this.getClass().getResourceAsStream("file/Template_RH.xls");

Да, это возможно.См .: Загрузка файла с пружинных контроллеров

Вы можете попробовать: Java Apache POI Excel сохранить как PDF (я сам не пробовал).

...