Apache POI增加execl分页
时间: 2024-04-30 14:17:20 浏览: 145
poi excel example,分页,行高,列宽
您可以使用Apache POI的sheet分页功能来实现excel分页。首先创建一个Workbook对象,然后使用createSheet()方法创建多个Sheet对象,最后使用setActiveSheetIndex()方法来设置活动的Sheet。可以使用shiftRows()方法来在每个Sheet中创建分页,并将数据插入到相应的Sheet中。下面是一个代码示例:
```
import org.apache.poi.ss.usermodel.*;
public class ExcelPaging {
public static void main(String[] args) throws Exception {
Workbook workbook = new XSSFWorkbook();
int rowNumber = 1000;
int pageSize = 100;
int pageCount = rowNumber/pageSize+1;//计算总页数
int currentRow = 0;
for (int i = 1; i <= pageCount; i++) {
Sheet sheet = workbook.createSheet("Page "+i);//创建新的Sheet页
sheet.setDefaultColumnWidth(20);
sheet.setDefaultRowHeight((short) 400);
CellStyle style = workbook.createCellStyle();
Font font = workbook.createFont();
font.setFontName("Arial");
font.setBold(true);
style.setFont(font);
style.setAlignment(HorizontalAlignment.CENTER);
Row titleRow = sheet.createRow(0);
Cell titleCell = titleRow.createCell(0);
titleCell.setCellValue("Page "+i);
titleCell.setCellStyle(style);
sheet.createFreezePane(0, 1);//冻结首行
int startRow = (i-1)*pageSize;//开始行
int endRow = i*pageSize > rowNumber ? rowNumber : i*pageSize;//结束行
for (int j = startRow; j < endRow; j++) {
Row row = sheet.createRow(j%pageSize+1);//创建行
row.createCell(0).setCellValue("column 1, row "+(j+1));
row.createCell(1).setCellValue("column 2, row "+(j+1));
row.createCell(2).setCellValue("column 3, row "+(j+1));
row.createCell(3).setCellValue("column 4, row "+(j+1));
row.createCell(4).setCellValue("column 5, row "+(j+1));
}
currentRow = endRow;
}
workbook.setActiveSheet(0);//设置活动Sheet页
workbook.write(new FileOutputStream("test.xlsx"));//写入excel文件
workbook.close();
}
}
```
以上就是一个简单的excel分页示例代码。您可以根据自己的需求调整代码。
阅读全文