java中对poi导出的Excel进行打印设置

无模板时


PrintSetup ps = sheet.getPrintSetup();
// 印刷方向、true:横向、false:縦向
ps.setLandscape(true); 
//设置用紙
ps.setPaperSize(PrintSetup.A3_PAPERSIZE); 
//设置比率
ps.setScale(60);
//设置页边距
sheet.setMargin(Sheet.LeftMargin,( double ) 0.1 );//(左)
sheet.setMargin(Sheet.RightMargin,( double ) 0.1 );//(右)
sheet.setMargin(Sheet.BottomMargin,( double ) 0.5 );//(下)
sheet.setMargin(Sheet.TopMargin,( double ) 0.5 );//(上)

//启用“适合页面”打印选项的标志。(默认选择的是“将工作表调整为一页”)
sheet.setFitToPage(true);
//页眉与页脚设置
Header header = sheet.getHeader();
header.setCenter(HSSFHeader.page());//设置在中间
//header.setLeft(HSSFHeader.page());//设置在左边
//header.setRight(HSSFHeader.page());//设置在右边

Footer footer = sheet.getFooter();
footer.setCenter("第" + HSSFFooter.page() + "页,共 " + HSSFFooter.numPages()+"页");

//设置标题(实现打印时每一页都有同个头部标题)
sheet.setRepeatingColumns(CellRangeAddress columnRangeRef);
sheet.setRepeatingRows(CellRangeAddress rowRangeRef)

 

打印Page选项设置

 

有模板时


//sheet1:模板的sheet
//sheet2:要输出的sheet
public void setPrintSetupInfo(XSSFSheet sheet1, XSSFSheet sheet2) {
		XSSFPrintSetup psTemplete = sheet1.getPrintSetup();
		XSSFPrintSetup psOutput = sheet2.getPrintSetup();

        //页眉边距设置
		psOutput.setHeaderMargin(psTemplete.getHeaderMargin());
		psOutput.setFooterMargin(psTemplete.getFooterMargin());
        //设置宽、高页数以适合纸张
		psOutput.setFitWidth(psTemplete.getFitWidth());
		psOutput.setFitHeight(psTemplete.getFitHeight());
        //设置纸张尺寸
		psOutput.setPaperSize(psTemplete.getPaperSize());
        //设置页码开始
		psOutput.setPageStart(psTemplete.getPageStart());
        //设置是否横向打印
		psOutput.setLandscape(psTemplete.getLandscape());
        //设置是按顺序从左到右还是自上而下
		psOutput.setLeftToRight(psTemplete.getLeftToRight());
        //设置是否处于草稿模式
		psOutput.setDraft(psTemplete.getDraft());
        //设置比例
		psOutput.setScale(psTemplete.getScale());
        //页边距设置
		psOutput.setTopMargin(psTemplete.getTopMargin());
		psOutput.setBottomMargin(psTemplete.getBottomMargin());
		psOutput.setLeftMargin(psTemplete.getLeftMargin());
		psOutput.setRightMargin(psTemplete.getRightMargin());

		//页面打印选项设置(根据模板的选择来设置)
		outputSheet.setFitToPage(templeteSheet.getFitToPage());
		//页脚设置
		Footer psTempletefooter = templeteSheet.getFooter();
		Footer psOutputfooter = outputSheet.getFooter();
		psOutputfooter.setCenter(psTempletefooter.getCenter());
        //页眉设置省略。。。

        //设置标题(实现打印时每一页都有同个头部标题)
        sheet2.setRepeatingRows(sheet1.getRepeatingRows());
		sheet2.setRepeatingColumns(sheet1.getRepeatingColumns());

	}

 想了解更多方法可以去:http://poi.apache.org/apidocs/dev/org/apache/poi/ss/usermodel/PrintSetup.html

http://poi.apache.org/apidocs/dev/org/apache/poi/xssf/usermodel/XSSFPrintSetup.html

如对你有帮助的话,请给个赞或评论一下,谢谢 

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值