`

java报表JXL和POI打印设置

 
阅读更多
  1. JXL的打印设置jxl.SheetSettings这个类中,我们可以通过方SheetWritableSheet#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.1SheetSetting # setHeaderHeaderFooter;

    :

    HeaderFooter的设置,首先确定页眉的位置(左、中、右),通HeaderFooter#getCentre()(或getLeft()getRight())方法获HeaderFooter.Contents类,之后对这个类的属性进行操作

    下面简单介绍几个常用方法

    设置字号Contents#setFontSize(int)

    设置字体Contents#setFontName(String)

    设置内容Contents# appendString),还appendDate()当前日期等等,具体参Contents类说

    3.2SheetSetting # setFooterHeaderFooter

    说明同

     

    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. SheetSettings sheetSetting=sheet.getSettings();
  3. //将原sheet页的打印设置设置到当前Sheet页中
  4. sheet=new MjJxlExcelCopyPrintSetting().copySheetSettingToSheet(sheet, sheetSetting);
  1. 下面是MjJxlExcelCopyPrintSetting的代码:
  2. import jxl.HeaderFooter;
  3. import jxl.Range;
  4. import jxl.SheetSettings;
  5. import jxl.format.PageOrientation;
  6. import jxl.format.PaperSize;
  7. import jxl.write.WritableSheet;
  8. /**
  9.  * 读取Jxl方法并设置
  10.  * @author 邱大为
  11.  * @version 1.0
  12.  */
  13. public class MjJxlExcelCopyPrintSetting {
  14.     /**
  15.      * 该方法将setting设置到sheet中
  16.      * @param sheet 需要设置的sheet
  17.      * @param setting 被设置的属性
  18.      * @return
  19.      */
  20.     public WritableSheet copySheetSettingToSheet(WritableSheet sheet,SheetSettings setting){
  21. //      设置原Sheet打印属性到新Sheet页
  22.         SheetSettings sheetSettings= sheet.getSettings();
  23.         
  24.         sheetSettings.setAutomaticFormulaCalculation(setting.getAutomaticFormulaCalculation());
  25.         sheetSettings.setBottomMargin(setting.getBottomMargin());
  26.         sheetSettings.setCopies(setting.getCopies());
  27.         sheetSettings.setDefaultColumnWidth(setting.getDefaultColumnWidth());
  28.         sheetSettings.setDefaultRowHeight(setting.getDefaultRowHeight());
  29.         sheetSettings.setDisplayZeroValues(setting.getDisplayZeroValues());
  30.         sheetSettings.setFitHeight(setting.getFitHeight());
  31.         sheetSettings.setFitToPages(setting.getFitToPages());
  32.         sheetSettings.setFitWidth(setting.getFitWidth());
  33.         
  34.         HeaderFooter footer=setting.getFooter();
  35.         if(footer!=null){
  36.             sheetSettings.setFooter(footer);
  37.         }
  38.         sheetSettings.setFooterMargin(setting.getFooterMargin());
  39.         HeaderFooter header=setting.getHeader();
  40.         if(header!=null){
  41.             sheetSettings.setHeader(header);
  42.         }
  43.         sheetSettings.setHeaderMargin(setting.getHeaderMargin());
  44.         sheetSettings.setHidden(setting.isHidden());
  45.         sheetSettings.setHorizontalCentre(setting.isHorizontalCentre());
  46.         sheetSettings.setHorizontalFreeze(setting.getHorizontalFreeze());
  47.         sheetSettings.setHorizontalPrintResolution(setting.getHorizontalPrintResolution());
  48.         sheetSettings.setLeftMargin(setting.getLeftMargin());
  49.         sheetSettings.setNormalMagnification(setting.getNormalMagnification());
  50.         PageOrientation pageOrientation=setting.getOrientation();
  51.         if(pageOrientation!=null){
  52.             sheetSettings.setOrientation(pageOrientation);
  53.         }
  54.         sheetSettings.setPageBreakPreviewMagnification(setting.getPageBreakPreviewMagnification());
  55.         sheetSettings.setPageBreakPreviewMode(setting.getPageBreakPreviewMode());
  56.         sheetSettings.setPageStart(setting.getPageStart());
  57.         PaperSize paperSize=setting.getPaperSize();
  58.         if(paperSize!=null){
  59.             sheetSettings.setPaperSize(setting.getPaperSize());
  60.         }
  61.         
  62.         sheetSettings.setPassword(setting.getPassword());
  63.         sheetSettings.setPasswordHash(setting.getPasswordHash());
  64.         Range printArea=setting.getPrintArea();
  65.         if(printArea!=null){
  66.             sheetSettings.setPrintArea(printArea.getTopLeft()==null?0:printArea.getTopLeft().getColumn(), 
  67.                     printArea.getTopLeft()==null?0:printArea.getTopLeft().getRow(), 
  68.                             printArea.getBottomRight()==null?0:printArea.getBottomRight().getColumn(), 
  69.                                     printArea.getBottomRight()==null?0:printArea.getBottomRight().getRow());
  70.         }
  71.         
  72.         sheetSettings.setPrintGridLines(setting.getPrintGridLines());
  73.         sheetSettings.setPrintHeaders(setting.getPrintHeaders());
  74.         
  75.         Range printTitlesCol=setting.getPrintTitlesCol();
  76.         if(printTitlesCol!=null){
  77.         sheetSettings.setPrintTitlesCol(printTitlesCol.getTopLeft()==null?0:printTitlesCol.getTopLeft().getColumn(), 
  78.                 printTitlesCol.getBottomRight()==null?0:printTitlesCol.getBottomRight().getColumn());
  79.         }
  80.         Range printTitlesRow=setting.getPrintTitlesRow();
  81.         if(printTitlesRow!=null){
  82.             sheetSettings.setPrintTitlesRow(printTitlesRow.getTopLeft()==null?0:printTitlesRow.getTopLeft().getRow(), 
  83.                     printTitlesRow.getBottomRight()==null?0:printTitlesRow.getBottomRight().getRow());
  84.         }
  85.         
  86.         sheetSettings.setProtected(setting.isProtected());
  87.         sheetSettings.setRecalculateFormulasBeforeSave(setting.getRecalculateFormulasBeforeSave());
  88.         sheetSettings.setRightMargin(setting.getRightMargin());
  89.         sheetSettings.setScaleFactor(setting.getScaleFactor());
  90.         sheetSettings.setSelected(setting.isSelected());
  91.         sheetSettings.setShowGridLines(setting.getShowGridLines());
  92.         sheetSettings.setTopMargin(setting.getTopMargin());
  93.         sheetSettings.setVerticalCentre(setting.isVerticalCentre());
  94.         sheetSettings.setVerticalFreeze(setting.getVerticalFreeze());
  95.         sheetSettings.setVerticalPrintResolution(setting.getVerticalPrintResolution());
  96.         sheetSettings.setZoomFactor(setting.getZoomFactor());
  97.         return sheet;
  98.     }
  99. }
  100.  
  101. 关于POI的打印设置:

    转自http://bbs.club.sina.com.cn/tableforum/App/view.php?bbsid=343&subid=0&fid=5477&tbid=8182特此感

    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#setLeftHSSFHeader.date();
    :
    首先获HSSFHeader
    确定页眉的显示位(,左边显示页HSSFHeader#setLeft(显示内))
    可使HSSFHeader#setLeft,setCenter,setRight

    3.2
    HSSFFotter#setLeftHSSFFotter.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);
    按草稿方式QHSSFPrintSetup#setDraft(false)
    行号列(L):(很抱歉,还没有找到
    (M):(很抱歉,还没有找到
    错误单元格打印(E):(很抱歉,还没有找到

    4.
    4
    打印顺

    HSSFPrintSetup#setLeftToRight(false) 

     

分享到:
评论

相关推荐

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

    ### Java 报表 JXL 和 POI 打印设置详解 在Java开发中,经常需要处理Excel文件,尤其是在报表系统中。JXL 和 POI 是两个常用的库来操作Excel文件。其中,对于打印功能的支持是必不可少的一个环节。本文将详细介绍...

    java操作excel——jxl和poi比较

    本文将对比两种主流的Java Excel处理库:jxl和Apache POI,并探讨它们的特性和适用场景。 首先,jxl是较早的Java Excel处理库,主要用于读写Excel 97-2003格式的.XLS文件。它的API简洁,易于上手,对于简单的读写...

    java使用jxl打印excel报表文件

    在Java开发中,生成和处理Excel文件是一...总的来说,通过JXL库,Java开发者可以方便地生成和打印Excel报表,满足各种数据展示和导出的需求。尽管JXL有一些限制,但其简单易用的API使得它成为小型项目的一个不错选择。

    Excel生成导出JXL和POI两种方式小demo

    - **POI方式**:对于Apache POI,你需要导入poi和poi-ooxml库,创建XSSFWorkbook(.xlsx)或HSSFWorkbook(.xls)对象,操作步骤类似,但API略有不同: ```java Workbook workbook = new XSSFWorkbook(); // 对于...

    poi jxl 生成EXCEL 报表

    Apache POI 和 JExcelAPI(JXL)是两个广泛使用的库,分别用于处理Microsoft Office的POI格式(包括Excel)和Java环境中的Excel文件。下面将详细阐述这两个库以及如何使用它们来生成Excel报表。 Apache POI 是一个...

    JAVA 无需JXL和POI用PageOffice自动生成Excel表格.pdf

    在处理复杂的格式和动态生成报表时,传统的方法如使用JXL或Apache POI库可能会变得繁琐。本文将介绍如何利用PageOffice库在Java环境中无需JXL和POI,直接自动生成Excel表格。 PageOffice是一款能够帮助开发者在...

    操作Excel文件(读取和生成)jxl和poi

    总的来说,JXL适合简单的Excel操作,而Apache POI则更适合处理复杂的Excel任务,如样式设置、公式计算等。选择哪个库取决于项目需求和性能考虑。在实际开发中,开发者通常会根据具体场景选择合适的工具,以实现高效...

    jxl与poi jar

    综上所述,这个压缩包提供了处理Excel文件的两种主要Java工具:jxl和Apache POI。开发者可以利用这些库进行数据的读取、写入、分析和转换,广泛应用于数据分析、报表生成、自动化测试等领域。使用文档和教程则能帮助...

    JAVA 无需JXL和POI用PageOffice自动生成Excel表格.docx

    总结一下,本文主要介绍了如何使用PageOffice组件在Java环境中,不依赖JXL和POI,自动生成Excel表格。通过步骤化的示例,我们展示了如何创建一个新的Excel文件,并在其中填充数据,包括标题和具体的数据项。这为...

    Java通过POI和JXL给Excel动态添加水印

    ### Java通过POI和JXL给Excel动态添加水印 #### 概述 在实际工作中,经常需要对敏感或重要的Excel文件进行保护措施,比如添加水印。这不仅可以增加文档的专业性,还可以作为版权保护的一种手段。本文将详细介绍...

    jxls报表生成利器,比起jxl,poi牛逼得很

    标题中的“jxls报表生成利器,比起jxl,poi牛逼得很”暗示了本文将讨论在Java环境下生成Excel报表的工具,重点在于jxls和Apache POI库的对比。jxls是一个基于Apache POI的扩展库,使得在处理Excel模板时更加方便高效...

    java使用poi包和jxl包操作excel的心得

    ### Java使用POI包与JXL包操作Excel的实践心得 #### 一、引言 在实际工作中,经常需要处理Excel文件,特别是在企业级应用中,Excel作为一种常用的数据存储和交换格式,其重要性不言而喻。Java作为一款流行的企业级...

    JAVA JXL报表完美程序版

    这个"JAVA JXL报表完美程序版"很可能是包含了一个完整的解决方案,用于创建具有表头、表内容和表统计列的Excel报表。下面将详细讨论JXL库的关键功能和如何在Java中使用它来实现这些特性。 1. **JXL库的基本概念**:...

    JXL、POI实现Excel导入导出

    JXL和Apache POI是两个流行的Java库,专门用于读取、写入和操作Excel文件。下面将详细介绍这两个库以及如何利用它们实现Excel的导入导出功能。 ### JXL JXL(Java Excel API)是一个轻量级的Java库,它提供了读取...

    poi 和 jxl

    在实际应用中,你可以利用Apache POI和JXL来实现各种功能,比如自动化报表生成、数据导入导出、数据分析等。通过这两个库,你可以避免依赖Microsoft Office应用程序来处理Excel文件,使得你的程序可以在任何支持Java...

    java操作excel,jxl边框的设置,jxl单元格的设置

    在Java编程中,处理Excel文件是一项常见的任务...虽然现在有更新的库如Apache POI和OpenCSV等,但JXL对于简单的需求仍然是一种实用的选择。不过,随着技术的发展,考虑使用更现代的库可以提供更好的性能和更多的功能。

    Jxl和poi读取写入excel

    总的来说,Jxl和Apache POI是Java处理Excel文件的强大工具。它们提供了丰富的API,可以方便地进行数据读取、写入和格式控制。在实际应用中,理解这些库的工作原理以及如何正确操作Excel文件,对于提升工作效率和代码...

    dwr结合jQuery实现Ajax技术 ,Oracle作为后台数据库,jxl + poi报表

    标题中的“dwr结合jQuery实现Ajax技术”是指在Web开发中使用Direct Web Remoting (DWR) 和 jQuery库来创建...开发者需要掌握Java编程、Ajax技术、SQL查询、Oracle数据库管理以及使用jxl和POI处理Excel文件的相关技能。

Global site tag (gtag.js) - Google Analytics