11、POI打印功能

11.1、常用模块形式:

         HSSFPrintSetup printSetup = sheet.getPrintSetup();
printSetup.setVResolution((short) 600); //打印质量600点
printSetup.setPaperSize(HSSFPrintSetup.A4_PAPERSIZE); //A4纸张打印
printSetup.setLandscape(true); //横向打印

11.2、常用参数设置方法

1、页面设置

1.1、方向:

纵向(T):HSSFPrintSetup#setLandscape(false); [默认状态]

横向(L):HSSFPrintSetup#setLandscape(true);

1.2、缩放:

缩放比例(A):HSSFPrintSetup#setScale((short) 100); [默认状态]

调整(F):   页宽  HSSFPrintSetup#setFitWidth((short) 1);

页高  HSSFPrintSetup#setFitHeight((short) 0);

1.3、纸张大小(Z):HSSFPrintSetup#setPageSize(HSSFPrintSetup.LETTER_PAPERSIZE);

纸张大小定义说明:

public static final short LETTER_PAPERSIZE = 1;

public static final short LEGAL_PAPERSIZE = 5;

public static final short EXECUTIVE_PAPERSIZE = 7;

public static final short A4_PAPERSIZE = 9;

public static final short A5_PAPERSIZE = 11;

public static final short ENVELOPE_10_PAPERSIZE = 20;

public static final short ENVELOPE_DL_PAPERSIZE = 27;

public static final short ENVELOPE_CS_PAPERSIZE = 28;

public static final short ENVELOPE_MONARCH_PAPERSIZE = 37;

1.4、打印质量(Q):  HSSFPrintSetup#setVResolution((short) 300);

1.5、起始页码(R):  HSSFPrintSetup#setPageStrart((short) 0); [默认状态]

2、页面距

2.1、上(T):  HSSFSheet#setMargin(HSSFSheet.TopMargin,(short) 0.6);

2.2、下(B):  HSSFSheet#setMargin(HSSFSheet.BottomMargin,(short) 0.6);

2.3、左(L):  HSSFSheet#setMargin(HSSFSheet.LeftMargin,(short) 0.6);

2.4、右(R):  HSSFSheet#setMargin(HSSFSheet.RightMargin,(short) 0.2);

2.5、页眉(A):  HSSFPrintSetup#setHeaderMargin((double) 0.2);

2.6、页脚(F):  HSSFPrintSetup#setFooterMargin((double) 0.6);

2.7、居中对齐方式:  水平(Z)  HSSFSheet#setHorizontallyCenter(false);

垂直(V)  HSSFSheet#setVerticallyCenter(false);

3、页眉/页脚

3.1、页眉:HSSFHeader#setLeft(HSSFHeader.date();

说明:首先获得HSSFHeader对象,确定页眉的显示位置(如:左边显示页眉HSSFHeader#setLeft(显示内容))

可用:HSSFHeader#setLeft,setCenter,setRight

3.2、页脚:  HSSFFotter#setLeft(HSSFFotter.page()+”/”+HSSFFotter.numPages())

说明同页眉

4、工作表

4.1、打印区域

HSSFWorkbook#setPrintArea((int) sheetIndex,  (int) startColumn,  (int) endColumn,  (int) startRow,  (int) endRow);

参数说明:

sheetIndex–从0开始的sheet的索引编号  
startColumn-打印区域的开始列号  
endColumn- 打印区域的结束列号  
startRow-打印区域的开始行号  
endRow- 打印区域的结束行号

4.2、打印标题

HSSFWorkbook#setRepeatingRowsAndColumns((int) sheetIndex,  (int) startColumn,  (int) endColumn,  (int) startRow,  (int) endRow);

参数说明同上。

使用说明:仅仅设置左端标题列:workbook.setRepeatingRowsAndColumns(0,0,1,-1,-1);

仅仅设置顶端标题行:workbook.setRepeatingRowsAndColumns(0,-1,-1,0,4);

同时设置左端和顶端标题:workbook.setRepeatingRowsAndColumns(0,-1,-1,-1,-1);

4.3、打印

网格线 (G):HSSFSheet#setPrintGridlines(false);

单色打印(B)HSSFPrintSetup#setNoColor(false);

按草稿方式(Q):HSSFPrintSetup#setDraft(false);

行号列标(L):

批注(M):

错误单元格打印为(E):

4.4、打印顺序

HSSFPrintSetup#setLeftToRight(false);

11.3、程序示例:

  1package test;
2
3import java.io.FileOutputStream;
4import java.io.IOException;
5
6import org.apache.poi.hssf.usermodel.HSSFCell;
7import org.apache.poi.hssf.usermodel.HSSFCellStyle;
8import org.apache.poi.hssf.usermodel.HSSFFont;
9import org.apache.poi.hssf.usermodel.HSSFPrintSetup;
10import org.apache.poi.hssf.usermodel.HSSFRichTextString;
11import org.apache.poi.hssf.usermodel.HSSFRow;
12import org.apache.poi.hssf.usermodel.HSSFSheet;
13import org.apache.poi.hssf.usermodel.HSSFWorkbook;
14
15public class ExcelTest {
16
17 public static void main(String[] args) throws IOException {
18
19 // create a new file
20 FileOutputStream out = new FileOutputStream("D:/workbook.xls");
21 // create a new workbook
22 HSSFWorkbook wb = new HSSFWorkbook();
23 // create a new sheet
24 HSSFSheet sheet = wb.createSheet();
25
26 //2.model
27 HSSFRow row = sheet.createRow(2);
28 row.setHeightInPoints(20);
29 HSSFCell cell = row.createCell(2);
30 HSSFFont cnFont = wb.createFont();
31 cnFont.setFontHeightInPoints((short) 10);
32 //font.setFontName("汉仪报宋简");
33 cnFont.setFontName("隶书");
34 HSSFCellStyle cnStyle = wb.createCellStyle();
35 cnStyle.setFont(cnFont);
36 cell.setCellStyle(cnStyle);
37 HSSFRichTextString richText = new HSSFRichTextString("中文字体测试");
38 cell.setCellValue(richText);
39 HSSFCell enCell = row.createCell(3);
40 HSSFFont enFont = wb.createFont();
41 enFont.setFontHeightInPoints((short) 10);
42 enFont.setFontName("Arial Black");
43 HSSFCellStyle enStyle = wb.createCellStyle();
44 enStyle.setFont(enFont);
45 enCell.setCellStyle(enStyle);
46 enCell.setCellValue(new HSSFRichTextString("English font test"));
47 sheet.setColumnWidth(2, 4000);
48 sheet.setColumnWidth(3, 4000);
49
50 //3.output
51 sheet.setDisplayGridlines(false);
52 sheet.setPrintGridlines(false);
53 HSSFPrintSetup printSetup = sheet.getPrintSetup();
54 //A4纸
55 printSetup.setPaperSize(HSSFPrintSetup.A4_PAPERSIZE);
56 wb.write(out);
57 out.close();
58 }
59}
60

11、借助POI实现Java生成并打印excel报表(2)的更多相关文章

  1. 10、借助POI实现Java生成并打印excel报表(1)

    10.1.了解 Apache POI 实际开发中,用到最多的是把数据库中数据导出生成报表,尤其是在生产管理或者财务系统中用的非常普遍.生成报表格式一般是EXCEL或者PDF .利用Apache  PO ...

  2. 使用Java类库POI生成简易的Excel报表

    使用Java类库POI生成简易的Excel报表 1.需求 1.数据库生成报表需要转义其中字段的信息.比如 1,有效 2.无效等 2.日期格式的自数据需要转义其格式. 3.标题的格式和数据的格式需要分别 ...

  3. Java生成和操作Excel文件(转载)

    Java生成和操作Excel文件   JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该A ...

  4. POI打印Excel报表

    1.将POI组件中的jar包放入项目中路径下的WEB-INF/lib目录中 2.在javabean中创建一个poi的java文件,中间出了创建getXXX(),setXXX()方法外,加入readRe ...

  5. Java生成和操作Excel文件

    JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...

  6. 转帖 Java生成和操作Excel文件

    JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...

  7. (转载)Java生成和操作Excel文件

    JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...

  8. ASP.NET打印EXCEl报表技术总结

    序言:我们在做企业项目或者一些管理系统的时候往往会用到导出到excel报表这项功能,下面我介绍的是用windows自带的excel来打印 首先必须引入:Interop.Excel.dll.Intero ...

  9. Excel导入导出,生成和下载Excel报表、附件等操作--ASP.NET

    public class OutExcel { public static void OutExcel_bb(DataTable dt, string thepath, string temppath ...

随机推荐

  1. 【Egret】Native版本 视频播放器(android)

    前段时间,领导说客户要一个平板版本的视频播放器,把我们做的一些视频资源放进去,要是本地的:我们部门又没有app开发程序员,正好又前段我在实验egret的app打包功能,就说用egret做(ps:本来想 ...

  2. php调试之路

    解析php中die(),exit(),return的区别 die()停止程序运行,输出内容exit是停止程序运行,不输出内容return是返回值die是遇到错误才停止exit是直接停止,并且不运行后续 ...

  3. 老李推荐:第6章1节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览 2

    事件要到那里去? 每个事件源处理类都维护着一个自己的事件队列, 在Monkey中叫做CommandQueue,里面装的是每个具体的MonkeyEvent事件.当来自网络的字串命令被翻译成对应的Monk ...

  4. 优雅高效的MyBatis-Plus工具快速入门使用

    目前正在维护的公司的一个项目是一个ssm架构的java项目,dao层的接口有大量数据库查询的方法,一个条件变化就要对应一个方法,再加上一些通用的curd方法,对应一张表的dao层方法有时候多达近20个 ...

  5. Android Google AdMob 广告接入示例

    Android Google AdMob 广告接入示例 [TOC] 首先请大家放心,虽然 Google搜索等服务被qiang了,但是 广告服务国内还是可以用的,真是普天同庆啊~~~噗! 其实这篇文章也 ...

  6. Python with

    简介 在编程中会经常碰到这种情况:有一个特殊的语句块,在执行这个语句块之前需要先执行一些准备动作:当语句块执行完成后,需要继续执行一些收尾动作.例如,文件读写后需要关闭,数据库读写完毕需要关闭连接,资 ...

  7. [Python]peewee使用经验

    peewee 使用经验 本文使用案例是基于 python2.7 实现 以下内容均为个人使用 peewee 的经验和遇到的坑,不会涉及过多的基本操作.所以,没有使用过 peewee,可以先阅读文档 正确 ...

  8. Selenium Grid2

    简介 使用selenium-grid可以远程执行测试的代码,核心步骤:grid --> server-->chromedriver驱动 -->chrome浏览器 利用Selenium ...

  9. JavaScript 函数的定义-调用、注意事项

    函数定义 函数语句定义 function(a,b){ return a+b; } 表达式定义 var add = function(a,b){return a+b}; //函数表达式可以包含名称,这在 ...

  10. 用 js 的 selection range 操作选择区域内容和图片

    原创文章,转载请注明出处并保留地址.原文地址:http://www.cnblogs.com/muge10/p/6723894.html 最近在做编辑器相关的东西,遇到一个需求,用户在编辑器中插入或者粘 ...