#java #mysql #spring-boot #dynamic #ms-word
Вопрос:
Я разрабатываю веб-приложение spring boot (Java), которое автоматизирует создание документов. Одна из проблем, с которой я сталкиваюсь, заключается в том, что у меня есть шаблон документа word в базе данных, и когда пользователь хочет создать документ, я хочу создать новый документ, используя этот сохраненный шаблон. Итак, есть ли способ создать документ word из шаблона, байты которого хранятся в базе данных. Кроме того, я хочу сохранить этот документ обратно в базу данных, получив его байтами.
Любая помощь будет признательна.
Комментарии:
1. Возможно, в документе Word есть шаблон, который вы можете открыть из приложения Word, вы не можете использовать это приложение с загрузкой Spring. У вас есть какой-нибудь код к нему?
2. Спасибо за ответ. Прямо сейчас я делаю что-то вроде открытия шаблона, хранящегося в моем каталоге, и добавления значений в шаблон. Это создает файл в моем каталоге, который я затем открываю и загружаю в базу данных. Я использовал код с этого веб-сайта: c-sharpcorner.com/article/…
3. Поэтому запустите запрос и сохраните его в виде файла. В чем именно заключается проблема?
Ответ №1:
Согласно ссылке, которую вы разместили в комментарии, вы используете бесплатно spire.doc библиотека. Ты можешь:
- Сначала преобразуйте байты в поток, вызовите метод Document.LoadFromStream, предоставляемый библиотекой, для загрузки шаблона из потока.
- Во-вторых, после заполнения данных сохраните документ обратно в поток, используя метод Document.SaveToStream.
- Наконец, преобразуйте поток в байты.
Ниже приведен пример (еще не протестировали его), вы можете попробовать.
byte[] inputBytes = yourBytes;
ByteArrayInputStream inputStream = new ByteArrayInputStream(inputBytes);
Document document = new Document();
document.loadFromStream(inputStream, FileFormat.Docx);
//do something
//......
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
document.saveToStream(outputStream, FileFormat.Docx_2013);
byte[] outputBytes = outputStream.toByteArray();