Я пытаюсь создать новый лист в существующей книге excel с использованием apache POI с использованием перформансов и java, но пока не увенчался успехом. Может ли кто-нибудь рассказать мне, как это делается? Я могу сделать это для одного листаКак добавить новые листы в существующую рабочую книгу excel с использованием apache POI и PrimeFaces
Код, указанный мной для написания нескольких листов в одном файле xls, где я задал условие, что у него нет строк более 65535, создайте новый лист и повторите его, но он показывает ошибки
ВНИМАНИЕ: недействительный номер строки (65536) за пределами допустимого диапазона (0..65535) java.lang.IllegalArgumentException: недействительный номер строки (65536) за пределами допустимого диапазона (0..65535)
Мой код:
public void postProcessXLS(Object document) {
HSSFWorkbook wb = (HSSFWorkbook) document;
HSSFSheet sheet = wb.getSheetAt(0);
HSSFFont font = wb.createFont();
font.setFontName(HSSFFont.FONT_ARIAL);
Iterator rowIterator = sheet.rowIterator();
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setWrapText(false);
cellStyle.setAlignment(HSSFCellStyle.ALIGN_GENERAL);
cellStyle.setFont(font);
System.out.println("Row number:"+sheet.getLastRowNum());
while (rowIterator.hasNext())
{
System.out.println("Row number:"+sheet.getLastRowNum());
//sheet.rowIterator().next().getRowNum();
if(sheet.getLastRowNum() >= 65535)
{
String sheetName = "";
for(int i=0;i<searchResults.size();i++)
{
sheetName = "Document-" + i;
HSSFSheet mySheet = wb.createSheet(sheetName);
HSSFRow hssfRow = (HSSFRow) rowIterator.next();
Iterator iterator = hssfRow.cellIterator();
while (iterator.hasNext())
{
HSSFCell hssfCell = (HSSFCell) iterator.next();
hssfCell.setCellStyle(cellStyle);
}
}
}
}
}
и в моем XHTML
<h:commandLink>
<p:graphicImage value="resources/images/excel.png" />
<p:dataExporter type="xls" target="nmeadata"
postProcessor="#{decodeNMEAMessageAction.postProcessNmeaXLS}"
fileName="decoded_all_nmeadata" />
</h:commandLink>
<h:commandLink>
<p:graphicImage value="resources/images/excel.png" />
<p:dataExporter type="xls" target="nmeadata"
postProcessor="#{decodeNMEAMessageAction.postProcessNmeaXLS}"
fileName="decoded_page_nmeadata" pageOnly="true" />
</h:commandLink>
Можно ли экспортировать данные в несколько листов с использованием primefaces. Другие полезные советы, пожалуйста, расскажите мне, как это можно сделать с помощью сервлетов.
не связан с предметами? –
@ user2310289 связано только с ориентирами – spt