11、借助POI实现Java生成并打印excel报表(2)
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)的更多相关文章
- 10、借助POI实现Java生成并打印excel报表(1)
10.1.了解 Apache POI 实际开发中,用到最多的是把数据库中数据导出生成报表,尤其是在生产管理或者财务系统中用的非常普遍.生成报表格式一般是EXCEL或者PDF .利用Apache PO ...
- 使用Java类库POI生成简易的Excel报表
使用Java类库POI生成简易的Excel报表 1.需求 1.数据库生成报表需要转义其中字段的信息.比如 1,有效 2.无效等 2.日期格式的自数据需要转义其格式. 3.标题的格式和数据的格式需要分别 ...
- Java生成和操作Excel文件(转载)
Java生成和操作Excel文件 JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该A ...
- POI打印Excel报表
1.将POI组件中的jar包放入项目中路径下的WEB-INF/lib目录中 2.在javabean中创建一个poi的java文件,中间出了创建getXXX(),setXXX()方法外,加入readRe ...
- Java生成和操作Excel文件
JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...
- 转帖 Java生成和操作Excel文件
JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...
- (转载)Java生成和操作Excel文件
JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...
- ASP.NET打印EXCEl报表技术总结
序言:我们在做企业项目或者一些管理系统的时候往往会用到导出到excel报表这项功能,下面我介绍的是用windows自带的excel来打印 首先必须引入:Interop.Excel.dll.Intero ...
- Excel导入导出,生成和下载Excel报表、附件等操作--ASP.NET
public class OutExcel { public static void OutExcel_bb(DataTable dt, string thepath, string temppath ...
随机推荐
- Python之路-Linux命令基础(5)
作业一:nginx服务 二进制安装nginx包 1.使用网络yum源 2.使用yum安装epel-release扩展源 [root@localhost html]# yum install epel- ...
- 性能调优之Java系统级性能监控及优化
性能调优之Java系统级性能监控及优化 对于性能调优而言,通常我们需要经过以下三个步骤:1,性能监控:2,性能剖析:3,性能调优 性能调优:通过分析影响Application性能问题根源,进行优化 ...
- c++ 字符串去重
##### c++ 字符串去重 == 需求 == * 编写一个字符串过滤函数,若字符串出现多个相同的字符,将不是首次出现的字符过滤掉. > 输入:"apache" 输出:&q ...
- selenium自动化过程中如何操作Flash动画
最近在看python的爬虫框架(scrapy),一个词概括就是:"酸爽"!等把selenium自动化版块讲完后,打算写一写关于scrapy相关的知识,打算从源码角度解析下scrap ...
- 删除 vim 命令
x 删除当前光标下的字符dw 删除光标之后的单词剩余部分.d$ 删除光标之后的该行剩余部分.dd 删除当前行. c 功能和d相同,区别在于完成删除操作后进入INSERT MODEcc 也是删除当前行, ...
- kafka分布式消息队列介绍以及集群安装
简介 首先简单说下对kafka的理解: 1.kafka是一个分布式的消息缓存系统: 2.kafka集群中的服务器节点都被称作broker 3.kafka的客户端分为:一是producer(消息生产者) ...
- canvas绘制一定数目的圆(均分)
绘制多圆 2016年5月24日12:12:26 绘制一定数目(num)颜色随机的小圆,围成一个大圆.根据num完全自动生成,且小圆自动均分大圆路径(num≥20). 效果: 前置技能:(1).Canv ...
- Java 原始数据类型的计算:运算符重载(Operator Overload)和类型转换(Type Conversion)
原文阅读:<算法(第四版)>第一章 第一节:基础编程模型 有没有在面试的时候被问到:下面这几行代码的执行结果是什么?依据是什么? System.out.println (5/3); Sys ...
- 使用Three.js的材质
1.three.js提供哪些材质? MeshBasicMaterial(网格基础材质)/基础材质,,可以用它富裕几何体一种简单的亚瑟,或者显示几何体的线框 MeshDepthMaterial(网格深度 ...
- AngularJS创建新指令 - 基本功能
指令(Directives)是所有AngularJS应用最重要的部分.尽管AngularJS已经提供了非常丰富的指令,但还是经常需要创建应用特定的指令. AngularJS原有的指令 ng-init ...