JXL的打印设置在jxl.SheetSettings这个类中,我们可以通过方法Sheet(或者WritableSheet)#getSettings()获取。
1.页面
1.1方向
SheetSetting#setOrientation(PageOrientation po);
参数: PageOrientation#LANDSCAPE 横向打印
PageOrientation# PORTRAIT 纵向打印
1.2缩放
1.2.1缩放比例(A) SheetSetting #setScaleFactor (int);百分比形式
1.2.2调整(F)
页宽 SheetSetting #setFitWidth(int);
页高 SheetSetting #setFitHeight(int);
1.3纸张大小(Z) SheetSetting #setPaperSize (PaperSize);
纸张大小的定义说明参见PaperSize类中的常量。
1.4起始页码(R) SheetSetting #setPageStrart(int);[默认状态]
2页面距
2.1上(T) SheetSetting # setTopMargin (double);
2.2下(B) SheetSetting # setBottomMargin (double);
2.3左(L) SheetSetting # setLeftMargin (double);
2.4右(R) SheetSetting # setRightMargin (double);
2.5页眉(A) SheetSetting #setHeaderMargin(double);
2.6页脚(F) SheetSetting #setFooterMargin(double);
2.7居中方式
2.7.1水平(Z) SheetSetting # setHorizontalCentre (boolean);
2.7.2垂直(V) SheetSetting #setVerticallyCenter(boolean);
3页眉/页脚
3.1页眉SheetSetting # setHeader(HeaderFooter);
说明:
对于HeaderFooter的设置,首先确定页眉的位置(左、中、右),通过HeaderFooter#getCentre()(或者getLeft()、getRight())方法获取HeaderFooter.Contents类,之后对这个类的属性进行操作。
下面简单介绍几个常用方法:
设置字号:Contents#setFontSize(int)
设置字体:Contents#setFontName(String)
设置内容:Contents# append(String),还有appendDate()当前日期等等,具体参考Contents类说明
3.2页脚SheetSetting # setFooter(HeaderFooter);
说明同上
4工作表
4.1打印区域
SheetSettings #setPrintArea(firstCol, firstRow, lastCol, lastRow)
4.2打印标题
SheetSettings#setPrintTitles (firstRow,lastRow,firstCol,lastCol);
SheetSettings#setPrintTitlesCol(firstCol,lastCol)
SheetSettings#setPrintTitlesRow(firstRow,lastRow)
另有一些其他的设置可在JXL API中找到,不多说了。
附件:通常在Excel中设置好打印,再将其读出来设置到当前页中来,附上代码:
在向Sheet页写数据之前:
1//获取原Sheet页的设置
2
3SheetSettings sheetSetting=sheet.getSettings();
4
5//将原sheet页的打印设置设置到当前Sheet页中
6
7sheet=new MjJxlExcelCopyPrintSetting().copySheetSettingToSheet(sheet, sheetSetting);
8
//1下面是MjJxlExcelCopyPrintSetting的代码:
2
3import jxl.HeaderFooter;
4import jxl.Range;
5import jxl.SheetSettings;
6import jxl.format.PageOrientation;
7import jxl.format.PaperSize;
8import jxl.write.WritableSheet;
9
10/** *//**
11 * 读取Jxl方法并设置
12
13 * @author 邱大为
14 * @version 1.0
15 */
16public class MjJxlExcelCopyPrintSetting {
17 /** *//**
18 * 该方法将setting设置到sheet中
19 * @param sheet 需要设置的sheet
20 * @param setting 被设置的属性
21 * @return
22 */
23 public WritableSheet copySheetSettingToSheet(WritableSheet sheet,SheetSettings setting){
24// 设置原Sheet打印属性到新Sheet页
25 SheetSettings sheetSettings= sheet.getSettings();
26
27 sheetSettings.setAutomaticFormulaCalculation(setting.getAutomaticFormulaCalculation());
28 sheetSettings.setBottomMargin(setting.getBottomMargin());
29 sheetSettings.setCopies(setting.getCopies());
30 sheetSettings.setDefaultColumnWidth(setting.getDefaultColumnWidth());
31 sheetSettings.setDefaultRowHeight(setting.getDefaultRowHeight());
32 sheetSettings.setDisplayZeroValues(setting.getDisplayZeroValues());
33 sheetSettings.setFitHeight(setting.getFitHeight());
34 sheetSettings.setFitToPages(setting.getFitToPages());
35 sheetSettings.setFitWidth(setting.getFitWidth());
36
37 HeaderFooter footer=setting.getFooter();
38 if(footer!=null){
39 sheetSettings.setFooter(footer);
40 }
41 sheetSettings.setFooterMargin(setting.getFooterMargin());
42 HeaderFooter header=setting.getHeader();
43 if(header!=null){
44 sheetSettings.setHeader(header);
45 }
46 sheetSettings.setHeaderMargin(setting.getHeaderMargin());
47 sheetSettings.setHidden(setting.isHidden());
48 sheetSettings.setHorizontalCentre(setting.isHorizontalCentre());
49 sheetSettings.setHorizontalFreeze(setting.getHorizontalFreeze());
50 sheetSettings.setHorizontalPrintResolution(setting.getHorizontalPrintResolution());
51 sheetSettings.setLeftMargin(setting.getLeftMargin());
52 sheetSettings.setNormalMagnification(setting.getNormalMagnification());
53 PageOrientation pageOrientation=setting.getOrientation();
54 if(pageOrientation!=null){
55 sheetSettings.setOrientation(pageOrientation);
56 }
57 sheetSettings.setPageBreakPreviewMagnification(setting.getPageBreakPreviewMagnification());
58 sheetSettings.setPageBreakPreviewMode(setting.getPageBreakPreviewMode());
59 sheetSettings.setPageStart(setting.getPageStart());
60 PaperSize paperSize=setting.getPaperSize();
61 if(paperSize!=null){
62 sheetSettings.setPaperSize(setting.getPaperSize());
63 }
64
65 sheetSettings.setPassword(setting.getPassword());
66 sheetSettings.setPasswordHash(setting.getPasswordHash());
67 Range printArea=setting.getPrintArea();
68 if(printArea!=null){
69 sheetSettings.setPrintArea(printArea.getTopLeft()==null?0:printArea.getTopLeft().getColumn(),
70 printArea.getTopLeft()==null?0:printArea.getTopLeft().getRow(),
71 printArea.getBottomRight()==null?0:printArea.getBottomRight().getColumn(),
72 printArea.getBottomRight()==null?0:printArea.getBottomRight().getRow());
73 }
74
75 sheetSettings.setPrintGridLines(setting.getPrintGridLines());
76 sheetSettings.setPrintHeaders(setting.getPrintHeaders());
77
78 Range printTitlesCol=setting.getPrintTitlesCol();
79 if(printTitlesCol!=null){
80 sheetSettings.setPrintTitlesCol(printTitlesCol.getTopLeft()==null?0:printTitlesCol.getTopLeft().getColumn(),
81 printTitlesCol.getBottomRight()==null?0:printTitlesCol.getBottomRight().getColumn());
82 }
83 Range printTitlesRow=setting.getPrintTitlesRow();
84 if(printTitlesRow!=null){
85 sheetSettings.setPrintTitlesRow(printTitlesRow.getTopLeft()==null?0:printTitlesRow.getTopLeft().getRow(),
86 printTitlesRow.getBottomRight()==null?0:printTitlesRow.getBottomRight().getRow());
87 }
88
89 sheetSettings.setProtected(setting.isProtected());
90 sheetSettings.setRecalculateFormulasBeforeSave(setting.getRecalculateFormulasBeforeSave());
91 sheetSettings.setRightMargin(setting.getRightMargin());
92 sheetSettings.setScaleFactor(setting.getScaleFactor());
93 sheetSettings.setSelected(setting.isSelected());
94 sheetSettings.setShowGridLines(setting.getShowGridLines());
95 sheetSettings.setTopMargin(setting.getTopMargin());
96 sheetSettings.setVerticalCentre(setting.isVerticalCentre());
97 sheetSettings.setVerticalFreeze(setting.getVerticalFreeze());
98 sheetSettings.setVerticalPrintResolution(setting.getVerticalPrintResolution());
99 sheetSettings.setZoomFactor(setting.getZoomFactor());
100 return sheet;
101 }
102}
103
104
105
1.页面
1.1方向
1.1.1纵向(T)HSSFPrintSetup#setLandscape(false); [默认状态]
1.1.2横向(L)HSSFPrintSetup#setLandscape(true);
1.2缩放
1.2.1缩放比例(A)HSSFPrintSetup#setScale((short) 100);[默认状态]
1.2.2调整(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居中方式
2.7.1水平(Z)HSSFSheet#setHorizontallyCenter(false);
2.7.2垂直(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());
说明同3.1
首先获得HSSFFotter对象
确定页眉的显示位置(如,左边显示页眉HSSFFotter#setLeft(显示内容))
可使用HSSFFotter#setLeft,setCenter,setRight
4工作表
4.1打印区域
HSSFWorkbook#setPrintArea(intsheetIndex,
intstartColumn,
intendColumn,
intstartRow,
intendRow);
参数的说明
sheetIndex–从0开始的sheet的索引编号
startColumn-打印区域的开始列号
endColumn-打印区域的结束列号
startRow-打印区域的开始行号
endRow-打印区域的结束行号
4.2打印标题
HSSFWorkbook#setRepeatingRowsAndColumns(intsheetIndex,
intstartColumn,
intendColumn,
intstartRow,
intendRow);
参数说明同4.1
使用说明:
仅仅设置左端标题列:
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);
相关推荐
### Java 报表 JXL 和 POI 打印设置详解 在Java开发中,经常需要处理Excel文件,尤其是在报表系统中。JXL 和 POI 是两个常用的库来操作Excel文件。其中,对于打印功能的支持是必不可少的一个环节。本文将详细介绍...
本文将对比两种主流的Java Excel处理库:jxl和Apache POI,并探讨它们的特性和适用场景。 首先,jxl是较早的Java Excel处理库,主要用于读写Excel 97-2003格式的.XLS文件。它的API简洁,易于上手,对于简单的读写...
在Java开发中,生成和处理Excel文件是一...总的来说,通过JXL库,Java开发者可以方便地生成和打印Excel报表,满足各种数据展示和导出的需求。尽管JXL有一些限制,但其简单易用的API使得它成为小型项目的一个不错选择。
- **POI方式**:对于Apache POI,你需要导入poi和poi-ooxml库,创建XSSFWorkbook(.xlsx)或HSSFWorkbook(.xls)对象,操作步骤类似,但API略有不同: ```java Workbook workbook = new XSSFWorkbook(); // 对于...
Apache POI 和 JExcelAPI(JXL)是两个广泛使用的库,分别用于处理Microsoft Office的POI格式(包括Excel)和Java环境中的Excel文件。下面将详细阐述这两个库以及如何使用它们来生成Excel报表。 Apache POI 是一个...
在处理复杂的格式和动态生成报表时,传统的方法如使用JXL或Apache POI库可能会变得繁琐。本文将介绍如何利用PageOffice库在Java环境中无需JXL和POI,直接自动生成Excel表格。 PageOffice是一款能够帮助开发者在...
总的来说,JXL适合简单的Excel操作,而Apache POI则更适合处理复杂的Excel任务,如样式设置、公式计算等。选择哪个库取决于项目需求和性能考虑。在实际开发中,开发者通常会根据具体场景选择合适的工具,以实现高效...
综上所述,这个压缩包提供了处理Excel文件的两种主要Java工具:jxl和Apache POI。开发者可以利用这些库进行数据的读取、写入、分析和转换,广泛应用于数据分析、报表生成、自动化测试等领域。使用文档和教程则能帮助...
总结一下,本文主要介绍了如何使用PageOffice组件在Java环境中,不依赖JXL和POI,自动生成Excel表格。通过步骤化的示例,我们展示了如何创建一个新的Excel文件,并在其中填充数据,包括标题和具体的数据项。这为...
### Java通过POI和JXL给Excel动态添加水印 #### 概述 在实际工作中,经常需要对敏感或重要的Excel文件进行保护措施,比如添加水印。这不仅可以增加文档的专业性,还可以作为版权保护的一种手段。本文将详细介绍...
标题中的“jxls报表生成利器,比起jxl,poi牛逼得很”暗示了本文将讨论在Java环境下生成Excel报表的工具,重点在于jxls和Apache POI库的对比。jxls是一个基于Apache POI的扩展库,使得在处理Excel模板时更加方便高效...
### Java使用POI包与JXL包操作Excel的实践心得 #### 一、引言 在实际工作中,经常需要处理Excel文件,特别是在企业级应用中,Excel作为一种常用的数据存储和交换格式,其重要性不言而喻。Java作为一款流行的企业级...
这个"JAVA JXL报表完美程序版"很可能是包含了一个完整的解决方案,用于创建具有表头、表内容和表统计列的Excel报表。下面将详细讨论JXL库的关键功能和如何在Java中使用它来实现这些特性。 1. **JXL库的基本概念**:...
JXL和Apache POI是两个流行的Java库,专门用于读取、写入和操作Excel文件。下面将详细介绍这两个库以及如何利用它们实现Excel的导入导出功能。 ### JXL JXL(Java Excel API)是一个轻量级的Java库,它提供了读取...
在实际应用中,你可以利用Apache POI和JXL来实现各种功能,比如自动化报表生成、数据导入导出、数据分析等。通过这两个库,你可以避免依赖Microsoft Office应用程序来处理Excel文件,使得你的程序可以在任何支持Java...
在Java编程中,处理Excel文件是一项常见的任务...虽然现在有更新的库如Apache POI和OpenCSV等,但JXL对于简单的需求仍然是一种实用的选择。不过,随着技术的发展,考虑使用更现代的库可以提供更好的性能和更多的功能。
总的来说,Jxl和Apache POI是Java处理Excel文件的强大工具。它们提供了丰富的API,可以方便地进行数据读取、写入和格式控制。在实际应用中,理解这些库的工作原理以及如何正确操作Excel文件,对于提升工作效率和代码...
标题中的“dwr结合jQuery实现Ajax技术”是指在Web开发中使用Direct Web Remoting (DWR) 和 jQuery库来创建...开发者需要掌握Java编程、Ajax技术、SQL查询、Oracle数据库管理以及使用jxl和POI处理Excel文件的相关技能。