Java JXL与POI报表打印设置教程

5星 · 超过95%的资源 需积分: 50 81 下载量 52 浏览量 更新于2024-10-01 1 收藏 9KB TXT 举报
本文主要介绍了在Java环境中使用JXL和POI库进行报表打印设置的方法,包括如何生成Excel文件并调整打印参数。JXL和POI是两个流行的库,用于处理Excel文件,JXL适用于早期版本的Excel,而POI则支持更现代的Excel格式。 在Java中,生成Excel报表并进行打印设置是常见的需求。JXL和POI提供了丰富的API来实现这些功能。以下是使用JXL和POI进行打印设置的关键步骤: 1. 设置页面方向: - 可以通过`SheetSettings`类的`setOrientation`方法设置页面方向。`PageOrientation.LANDSCAPE`表示横向打印,`PageOrientation.PORTRAIT`表示纵向打印。 2. 缩放和适应页面: - `SheetSetting#setScaleFactor(int)`可以设置缩放比例,使得页面以特定的比例显示。 - `SheetSetting#setFitWidth(int)`和`SheetSetting#setFitHeight(int)`可以设置页面适应宽度或高度,确保内容完全打印在一页内。 3. 设置纸张大小: - 使用`SheetSetting#setPaperSize(PaperSize)`方法,传入对应的`PaperSize`对象,可以设定不同的纸张大小,如A4、B5等。 4. 设置页边距: - `SheetSetting`类提供了设置上下左右页边距的方法,如`setTopMargin`、`setBottomMargin`、`setLeftMargin`和`setRightMargin`,单位通常是英寸。 5. 设置页眉和页脚: - 通过`SheetSetting#setHeaderFooter`方法,可以设置页眉和页脚的内容。页眉页脚可以通过`HeaderFooter`类的`getCentre()`、`getLeft()`和`getRight()`获取其内容,并进行定制。 - 内容可以设置字体大小和名称,以及添加文本或日期,例如`Contents#setFontSize`、`Contents#setFontName`、`Contents#appendString`和`Contents#appendDate`。 6. 页面居中: - `SheetSetting#setHorizontalCentre(boolean)`可以设置页面内容水平居中。 - `SheetSetting#setVerticallyCenter(boolean)`则用于设置垂直居中。 在实际应用中,这些设置可以灵活组合,以满足各种打印需求。JXL和POI库不仅提供了生成和设置Excel报表的基本功能,还允许开发者深入定制每个细节,从而创建出专业且符合用户需求的打印输出。对于那些不常见的文档打印需求,这些方法尤其有用,因为它们能够帮助你实现标准库中可能未包含的特定打印配置。
2019-07-16 上传
JxlExcel 是基于jxl封装的java excel读写库,特性如下:可以像读写文件一样方便的读取数据和写入数据数据支持数组、map、bean三种方式支持xml配置excel模板如何使用?模板定义在类路径下新建一个jxl-excel.xml的模板配置文件,输入如下的配置文件内容,即可定义一个excel模板。<?xml version="1.0" encoding="UTF-8" ?> <templates> <template name="testRead">     <titleRow>         <titleCol span="6">span标题</titleCol>     </titleRow>     <titleRow>         <titleCol>编制单位(盖章):</titleCol>         <titleCol></titleCol>         <titleCol span="3">编制日期:</titleCol>         <titleCol>单位:元</titleCol>     </titleRow>     <titleRow>         <titleCol>地区</titleCol>         <titleCol>姓名</titleCol>         <titleCol>身份证</titleCol>         <titleCol>账号</titleCol>         <titleCol>金额</titleCol>         <titleCol>备注</titleCol>     </titleRow>     <dataRow>         <dataCol>area</dataCol>         <dataCol>name</dataCol>         <dataCol>idCard</dataCol>         <dataCol>bankAccount</dataCol>         <dataCol>amount</dataCol>         <dataCol>remark</dataCol>     </dataRow> </template> </templates>模板(template)template元素用于定义一个模板,包含一个属性name,用于唯一标识该模板标题行(tittleRow)使用titleRow可以定义多行标题,每行标题又包含多个标题列(titleCol),标题列可以像html table的td一样定义span属性,表示该列占用几列空间数据行(dataRow)数据行用于定义Java bean或者Map中的属性在模板中的显示或读写顺序,数据行中的dataCol不支持span读数据InputStream is = JxlExcelReaderTest.class             .getResourceAsStream("/testRead.xls"); reader.setExcelTemplate("testRead"); List<String[]> datas = reader.readArrays(); //List<Account> beans = reader.readBeans(Account.class); //List<Map<String, Object>> maps = reader.readMaps();写数据File tmp = new File("testWriteData.xls"); if (tmp.exists()) { tmp.delete(); } tmp.createNewFile(); JxlExcelWriter jxlExcelWriter = new JxlExcelWriter(tmp); jxlExcelWriter.setExcelTemplate("testRead"); List<String[]> accounts = new ArrayList<String[]>(); //省略测试数据生成...根据不同需要生成不同类型的数据 jxlExcelWriter.writeArrays(accounts); //jxlExcelWriter.writeBeans(accounts); //jxlExcelWriter.writeMaps(accounts);生成excel模板File tmp = new File("testWriteTemplate.xls"); if (tmp.exists()) { tmp.delete(); } tmp.createNewFile(); JxlExcelWriter jxlExcelWriter = new JxlExcelWriter(tmp); jxlExcelWriter.setExcelTemplate("testRead"); jxlExcelWriter.writeTemplate(); 标签:JxlExcel