Apache POI – ошибка преобразования xls в xlsxJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Apache POI – ошибка преобразования xls в xlsx

Сообщение Anonymous »

Я младший инженер-программист, новичок в этой должности. Я не уверен, что задаю бессмысленный вопрос, поэтому приношу извинения, прежде чем начать.
Сейчас я работаю над клиентским проектом, и меня попросили создать приложение для загрузки. Excel в базу данных. Прочитав, я решил использовать Apache POI, поскольку я также буду выполнять сопоставление данных с Excel. Пользователям разрешено загружать Excel как в формате xls, так и в формате xlsx, затем при весенней загрузке я независимо конвертирую загруженный формат файла в xlsx, поэтому, когда другие пользователи загружают файл Excel, он возвращает формат xlsx. Мне удалось это сделать, но когда дело доходит до стиля, он продолжает выдавать ошибку стиля. и иногда стиль может быть не таким, как он выглядит при загрузке.
Изображение

Изображение

Это то, что я пробовал
в своем сервисе:

Код: Выделить всё

private ByteArrayOutputStream convertWorkbookToXlsx(Workbook workbook) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try (XSSFWorkbook xssfWorkbook = new XSSFWorkbook()) {
for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
Sheet originalSheet = workbook.getSheetAt(i);
Sheet newSheet = xssfWorkbook.createSheet(originalSheet.getSheetName());

// for merged cells
for (int j = 0; j < originalSheet.getNumMergedRegions(); j++) {
CellRangeAddress mergedRegion = originalSheet.getMergedRegion(j);
if (mergedRegion != null) {
newSheet.addMergedRegion(mergedRegion);
}
}

// copy column widths
for (int colIndex = 0; colIndex < originalSheet.getRow(0).getLastCellNum(); colIndex++) {
newSheet.setColumnWidth(colIndex, originalSheet.getColumnWidth(colIndex));
}

// for each row and columns
for (int j = 0; j 

Подробнее здесь: [url]https://stackoverflow.com/questions/79108499/apache-poi-converting-xls-to-xlsx-styling-error[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»