Java中导入、导出Excel(烟台杰瑞教育原创)

上传人:飞*** 文档编号:44144713 上传时间:2018-06-08 格式:DOCX 页数:16 大小:65.37KB
返回 下载 相关 举报
Java中导入、导出Excel(烟台杰瑞教育原创)_第1页
第1页 / 共16页
Java中导入、导出Excel(烟台杰瑞教育原创)_第2页
第2页 / 共16页
Java中导入、导出Excel(烟台杰瑞教育原创)_第3页
第3页 / 共16页
Java中导入、导出Excel(烟台杰瑞教育原创)_第4页
第4页 / 共16页
Java中导入、导出Excel(烟台杰瑞教育原创)_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《Java中导入、导出Excel(烟台杰瑞教育原创)》由会员分享,可在线阅读,更多相关《Java中导入、导出Excel(烟台杰瑞教育原创)(16页珍藏版)》请在金锄头文库上搜索。

1、 烟台杰瑞教育科技有限公司(Java 开发培训部) 版权所有-杰瑞教育() 专注 IT 技能培训 打造一流人才服务平台-Java 中导入、导出 Excel一、介绍当前 B/S 模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用 Excel 打开(电信系统、银行系统)。或者是:我们已经习惯用Excel 打印。这样在我们实际的开发中,很多时候需要实现导入、导出 Excel 的应用。目前,比较常用的实现 Java 导入、导出 Excel 的技术有两种 Jakarta POI 和Java Excel下面我就分别讲解一下如何使用这两个技术实现导入、导出 Excel

2、二、使用 Jakarta POI 导入、导出 ExcelJakarta POI 是一套用于访问微软格式文档的 Java API。Jakarta POI 有很多组件组成,其中有用于操作 Excel 格式文件的 HSSF 和用于操作 Word 的 HWPF,在各种组件中目前只有用于操作 Excel 的 HSSF 相对成熟。官方主页http:/poi.apache.org/index.html,API 文档http:/poi.apache.org/apidocs/index.html2.1 环境配置2.1.1 下载 jar官方下载:http:/poi.apache.org/download.html

3、 这里可以下载到它的最新版本和文档,目前最新版本是 3.7,这里使用比较稳定的 3.6 版。烟台杰瑞教育科技有限公司(Java 开发培训部) 版权所有-杰瑞教育() 专注 IT 技能培训 打造一流人才服务平台-2.1.2 加入 jar 包将根目录下的 poi-3.6-20091214.jar 和 Lib 目录下三个通用包 commons-logging-1.1.jar junit-3.8.1.jar log4j-1.2.13.jar 拷贝到项目的 Lib 下2.2 Jakarta POI HSSF API 组件HSSF(用于操作 Excel 的组件)提供给用户使用的对象在rg.apache.p

4、oi.hssf.usermodel 包中,主要部分包括 Excel 对象,样式和格式,还有辅助操作。有以下几种对象: 常用组件:HSSFWorkbook excel 的文档对象HSSFSheet excel 的表单HSSFRow excel 的行HSSFCell excel 的格子单元HSSFFont excel 字体HSSFDataFormat 日期格式HSSFHeader sheet 头HSSFFooter sheet 尾(只有打印的时候才能看到效果)样式:HSSFCellStyle cell 样式辅助操作包括:HSSFDateUtil 日期HSSFPrintSetup 打印HSSFErr

5、orConstants 错误信息表2.3 基本操作步骤烟台杰瑞教育科技有限公司(Java 开发培训部) 版权所有-杰瑞教育() 专注 IT 技能培训 打造一流人才服务平台-首先,理解一下一个 Excel 的文件的组织形式,一个 Excel 文件对应于一个workbook(HSSFWorkbook),一个 workbook 可以有多个 sheet(HSSFSheet)组成,一个 sheet 是由多个 row(HSSFRow)组成,一个 row 是由多个 cell(HSSFCell)组成。基本操作步骤:1、用 HSSFWorkbook 打开或者创建“Excel 文件对象”2、用 HSSFWorkb

6、ook 对象返回或者创建 Sheet 对象3、用 Sheet 对象返回行对象,用行对象得到 Cell 对象4、对 Cell 对象读写。下面来看一个动态生成 Excel 文件的例子:/创建 HSSFWorkbook 对象HSSFWorkbook wb = new HSSFWorkbook(); /创建 HSSFSheet 对象HSSFSheet sheet = wb.createSheet(“sheet0“); /创建 HSSFRow 对象HSSFRow row = sheet.createRow(0); /创建 HSSFCell 对象HSSFCell cell=row.createCell(0

7、); /设置单元格的值cell.setCellValue(“单元格中的中文“);/输出 Excel 文件FileOutputStream output=new FileOutputStream(“d:workbook.xls“);wkb.write(output);output.flush();HSSF 读取文件同样还是使用这几个对象,只是把相应的 createXXX 方法变成了getXXX 方法即可。可见只要理解了其中原理,不管是读还是写亦或是特定格式都可以轻松实现,正所谓知其然更要知其所以然。2.4 导出 Excel 应用实例烟台杰瑞教育科技有限公司(Java 开发培训部) 版权所有-杰瑞

8、教育() 专注 IT 技能培训 打造一流人才服务平台-在 2.3 中我们寥寥几行代码实际上就已经就是实现了导出 Excel 一个简单示例,下面我们在看如何实现导出如图所示的 Excel 表格?代码如下:(实际开发中应封装到业务层组件中,然后在控制层中调用。这里直接写在控制层组件,如 Servlet 的 doGet/doPost 方法或 Struts 框架的 execute 方法中)/创建 HSSFWorkbook 对象(excel 的文档对象)HSSFWorkbook wb = new HSSFWorkbook();/建立新的 sheet 对象(excel 的表单)HSSFSheet shee

9、t=wkb.createSheet(“成绩表“);/在 sheet 里创建第一行,参数为行索引(excel 的行),可以是 065535 之间的任何一个HSSFRow row1=sheet.createRow(0);/创建单元格(excel 的单元格,参数为列索引,可以是 0255 之间的任何一个HSSFCell cell=row1.createCell(0);/设置单元格内容cell.setCellValue(“学员考试成绩一览表“);/合并单元格 CellRangeAddress 构造参数依次表示起始行,截至行,起始列, 截至列sheet.addMergedRegion(new CellR

10、angeAddress(0,0,0,3);/在 sheet 里创建第二行HSSFRow row2=sheet.createRow(1); /创建单元格并设置单元格内容row2.createCell(0).setCellValue(“姓名“);row2.createCell(1).setCellValue(“班级“); row2.createCell(2).setCellValue(“笔试成绩“);row2.createCell(3).setCellValue(“机试成绩“); /在 sheet 里创建第三行HSSFRow row3=sheet.createRow(2);row3.createC

11、ell(0).setCellValue(“李明“);row3.createCell(1).setCellValue(“As178“);row3.createCell(2).setCellValue(87); row3.createCell(3).setCellValue(78); /.省略部分代码烟台杰瑞教育科技有限公司(Java 开发培训部) 版权所有-杰瑞教育() 专注 IT 技能培训 打造一流人才服务平台-/输出 Excel 文件OutputStream output=response.getOutputStream();response.reset();response.setHead

12、er(“Content-disposition“, “attachment; filename=details.xls“);response.setContentType(“application/msexcel“); wkb.write(output);output.close();retrun null;加下划线这部分代码是 B/S 模式中采用的输出方式,而不是输出到本地指定的磁盘目录。该代码表示将 details.xls 的 Excel 文件通过应答实体(response)输出给请求的客户端浏览器,客户端可保存或直接打开。2.5 样式设置在实际应用中导出的 Excel 文件往往需要阅读和

13、打印的,这就需要对输出的 Excel 文档进行排版和样式的设置,主要操作有合并单元格、设置单元格样式、设置字体样式等。2.5.1 单元格合并使用 HSSFSheet 的 addMergedRegion()方法public int addMergedRegion(CellRangeAddress region)参数 CellRangeAddress 表示合并的区域,构造方法如下:CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol)构造参数依次表示起始行,截至行,起始列, 截至列。示例代码参照 2.4 部分2.

14、5.2 设置单元格的行高、列宽HSSFSheet sheet=wb.createSheet();烟台杰瑞教育科技有限公司(Java 开发培训部) 版权所有-杰瑞教育() 专注 IT 技能培训 打造一流人才服务平台-sheet.setDefaultRowHeightInPoints(10);/设置缺省列高 sheet.setDefaultColumnWidth(20);/设置缺省列宽/设置指定列的列宽,256 * 50 这种写法是因为 width 参数单位是单个字符的 256 分之一sheet.setColumnWidth(cell.getColumnIndex(), 256 * 50);2.5.2 单元格样式1、创建 HSSFCellStyleHSSFCellStyle cellStyle=wkb.createCellStyle();2、设置样式/ 设置单元格的横向和纵向对齐方式,具体参数就不列了,参考 HSSFCellStylecellStyle.setAlignment(HSSFCellStyle.ALIGN_JUSTIFY);cellStyle.setVerticalAlignment(HSSFCellStyle.VE

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号