大家好,我想问一下如何使用Java中的Apache poi删除excel中N列中的分页符。我已经在代码中设置了打印区域直到P列。但是当我尝试打印生成的Excel时,总是将分页符设置在N列中。
如何在Java上使用Apache poi调整分页符?
答案 0 :(得分:0)
如果目标是在打印时所有列(A:P
)都适合一页宽度,则可以使用Scale a worksheet解决此问题。
以下代码使用Sheet.setAutobreaks和Sheet.setFitToPage结合PrintSetup.setFitWidth和PrintSetup.setFitHeight来设置打印设置以适合缩放比例。设置宽度为适合所有列的页面宽度,并且高度设置为自动,因此当存在足够的行时将使用多页。
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class CreateExcelAllColumnsFitToOnePageWidth {
public static void main(String[] args) throws Exception {
//Workbook workbook = new HSSFWorkbook();
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet();
for (int r = 0; r < 200; r++) {
Row row = sheet.createRow(r);
for (int c = 0; c < 16; c++) {
Cell cell = row.createCell(c);
cell.setCellValue("Lorem ipsum");
if (r==0) sheet.autoSizeColumn(c);
}
}
sheet.setAutobreaks(true);
sheet.setFitToPage(true);
PrintSetup printSetup = sheet.getPrintSetup();
printSetup.setFitHeight((short)0);
printSetup.setFitWidth((short)1);
String fileout = (workbook instanceof HSSFWorkbook)?"Excel.xls":"Excel.xlsx";
FileOutputStream out = new FileOutputStream(fileout);
workbook.write(out);
out.close();
}
}