`

jxl操作打印的一些属性

    博客分类:
  • java
 
阅读更多
jxl打印设置

java报表JXL和POI打印设置 

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


分享到:
评论

相关推荐

    java报表JXL和POI打印设置 java 生成excel 设置打印

    JXL 提供了`SheetSettings`类来配置打印相关的属性。 ##### 1.1 页面方向 页面方向可以通过`SheetSetting#setOrientation(PageOrientation po)`方法设置。支持两种方向:横向(`PageOrientation.LANDSCAPE`)和纵向...

    jxl操作Excel 的具体例子

    同时,JXL库也支持对单元格格式、行高、列宽等属性的设置,以及合并单元格、插入图表等功能,满足更复杂的Excel文件操作需求。 在实际开发中,可以结合Eclipse这样的集成开发环境,直接运行这些示例代码,观察Excel...

    jxl(java_excel_jxl_oracle_imp_exp_使用全攻略).txt

    JXL还支持对现有Excel文件进行更新操作,这通常涉及到创建一个新的`WritableWorkbook`实例,并将其绑定到现有的工作簿上。下面的示例代码展示了如何在原有Excel文件中添加新的工作表: ```java import java.io.*; ...

    关于使用Jxl生成Excel并打印的经验总结.docx

    Jxl的核心优势在于其纯Java实现,这意味着无论是在Windows、Linux还是其他操作系统上,都可以跨平台地处理Excel文件。 **基础使用方法** 创建Excel文档的基本步骤如下: 1. 首先,你需要创建一个`File`对象来表示...

    关于使用Jxl生成Excel并打印的经验总结.pdf

    Jxl是一个Java库,用于读取和写入Microsoft Excel文件,它支持多种Excel版本,包括对字体、数字、日期等不同数据类型的处理,还提供了装饰单元格属性的功能。Jxl的独特之处在于它是一个纯Java实现,不受限于Windows...

    JXL 读取EXCEL

    首先,JXL提供了对Excel文件的全面支持,包括工作簿(Workbook)、工作表(Worksheet)、单元格(Cell)等对象的创建和操作。它支持多种单元格类型,如字符串、数字、日期、公式等,并且可以处理Excel的样式,如字体...

    java_Jxl(导入导出Excel).pdf

    Jxl的主要特点包括对字体、数字、日期的操作,单元格属性的修饰,以及对PNG格式图像和图表的有限支持。由于Jxl是用纯Java编写的,因此可以在任何支持Java的平台上运行,包括Linux。 **环境配置** 使用Jxl库前,首先...

    java_Excle读取导入(不需要连数据库_只用导个jxl包)

    `: 创建一个 `WorkbookSettings` 对象,可以用来设置读取 Excel 文件时的一些属性,如编码。 - `wks.setEncoding("ISO-8859-1");`: 设置 Excel 文件的字符编码,防止读取中文时出现乱码。根据实际情况,可能需要改...

    java_Jxl(导入导出Excel).doc

    这个库的特点还包括对字体、数字、日期等数据类型的处理,以及单元格属性的修饰。值得注意的是,虽然Jxl支持添加图像,但仅限于PNG格式,并且对图表的支持相对有限。 在使用Jxl之前,你需要先下载jxl.jar文件,将其...

    S2SH+jxl.jar实现导出Excel文档

    - **异常处理**:捕获可能发生的异常,如IO异常和写入异常,并打印堆栈跟踪。 #### 五、总结 通过上述步骤,我们成功地实现了使用S2SH框架和jxl.jar库导出Excel文件的功能。这种方法不仅简单高效,而且可以轻松地...

    JavaJxl开发.pdf

    - Jxl优点:支持Excel 95-2000的所有版本,生成Excel 2000标准格式,提供字体、数字、日期操作,能修饰单元格属性,支持PNG格式的图像和图表。缺点是对公式的支持不够全面。 - POI优点:功能更强大,对Excel的细节...

    javascript操作EXCEL

    下面是使用 JavaScript 操作 Excel 的一些示例代码: 1. 创建一个新 Excel 表格 使用 `new ActiveXObject("Excel.Application")` 创建一个新的 Excel 应用程序对象,然后使用 `Workbooks.Add` 方法创建一个新的...

    txt 转换成 pdf 所需要的夹包

    在IT领域,转换文本文件格式是一项常见的任务,例如将纯文本的`.txt`文件转换成更便于阅读和打印的`.pdf`文档。本压缩包文件提供了实现这一转换所需的关键库,包括`itext`、`jxl`和`itextAsian`。下面将详细介绍这三...

    java操作excel

    - **JXL**:仅支持JDK 1.6及以上版本,对于一些旧版JDK的支持较差。 2. **功能性和性能**: - **POI**:提供了更为丰富的功能,特别是在处理大型Excel文件时表现出更好的性能。POI支持两种模式:基于内存的DOM...

Global site tag (gtag.js) - Google Analytics