`
爱琴海的水手
  • 浏览: 57788 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java 导出excel的两种方法实现

    博客分类:
  • java
阅读更多
偶将最近写了两个导出excel的方法,第一个是面向过程的思路,就是在指定的单元格写入指定的值,如下:
/**
*负责数据导入到EXCEL
*
* @param realPath
* EXCEL表格存放的绝对路径
* @param sheetname
*
* @param xLocation
* EXCEL表格的行索引,从1开始
* @param yLocation
* EXCEL表格的列索引,从1开始
* @param value
* 需要导入的数据
*
*/
public void modifyExcel(String realPath,String sheetname,int xLocaion,int yLocation,String value){
POIFSFileSystem fs=null;
HSSFWorkbook wb=null;
try {
File file=new File(realPath);
if(file.exists()){
fs = new POIFSFileSystem(new FileInputStream(realPath));
wb=new HSSFWorkbook(fs);
HSSFSheet s=wb.getSheetAt(0);
//函数处理时横纵坐标从索引0开始
HSSFRow row=s.getRow(xLocaion-1);              
HSSFCell cell=null;
if(row!=null){
cell=row.getCell(yLocation-1);
if(cell==null){
cell=row.createCell(yLocation-1);
}
}else{
row=s.createRow(xLocaion-1);
cell=row.createCell(yLocation-1);
}

cell.setCellValue(value);

}else{
wb=new HSSFWorkbook();
HSSFSheet s=wb.createSheet();
wb.setSheetName(0, sheetname);
HSSFRow row=s.createRow(xLocaion-1);
HSSFCell cell=row.createCell(yLocation-1);
cell.setCellValue(value);
}
FileOutputStream fos=new FileOutputStream(realPath); 
wb.write(fos);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();

 
}

第二种就是运用了对象,以对象为单位写入数据,即一个对象的所有属性在一行列出,有多少个对象就有多少行,此方法比较适用于个人信息导出之类的应用,至于导出属性的顺序问题在导出对象的实体类内部改动下即可:
/**
*负责数据导入到EXCEL
*
* @param realPath
* EXCEL表格存放的绝对路径
* @param sheetname
*
* @param users
         *                              需要导出到excel表的对象数组
*/
public  void outputExcel(String realPath,String sheetname,UserModel[] users){
FileOutputStream fos;
try {
File file=new File(realPath);

fos = new FileOutputStream(file, true);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet s=wb.createSheet();
wb.setSheetName(0, sheetname);
HSSFRow[] rows=new HSSFRow[users.length];
HSSFCell[][] cells=new HSSFCell[20][20];
for (int i=0; i<users.length;i++) { // 相当于excel表格中的总行数
PropertyDescriptor[] descriptors=getAvailablePropertyDescriptors(users[i]);
rows[i]=s.createRow(i);
for (int j=0; descriptors!=null&&j<descriptors.length;j++) {
java.lang.reflect.Method readMethod = descriptors[j]
.getReadMethod();
cells[i][j]=rows[i].createCell(j);
Object value=readMethod.invoke(users[i], null);
cells[i][j].setCellValue(value.toString());

}

}
wb.write(fos);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}

}
分享到:
评论
1 楼 18335864773 2017-06-15  
还有一种生成excel的方法,就是用pageoffice插件生成excel。可以在线打开编辑保存excel,同时也可从数据库获取数据,动态填充Excel表格。利用pageoffice插件直接调用代码即可生成想要的excel,比poi生成excel生成excel简洁高效。

相关推荐

    java导出excel的相关jar

    java导出数据到excel中的相关jar包。导出Excel的技术有两种Jakarta POI和Java Excel。

    java实现excel导入导出.pdf

    在 Java 中,实现 Excel 导入导出可以使用多种方式,本文将介绍使用 JXL 和 POI 两个库实现 Excel 导入导出的方法。 使用 JXL 库实现 Excel 导入导出 JXL(Java Excel API)是一个开源的 Java 库,用于读写 Excel ...

    java 实现Excel压缩成Zip导出.docx

    Java 实现 Excel 压缩成 Zip 导出 Java 是一种广泛使用的编程语言,具有强大的功能和灵活性。在 Web 项目中,经常需要将数据导出为 Excel 文件,以便用户可以轻松地查看和编辑数据。然而,当需要导出多个 Excel ...

    Java导入、导出Excel

    在我们实际的开发中,很多时候需要实现导入、导出Excel的应用。目前,比较常用的实现Java导入、导出Excel的技术有两种Jakarta POI和Java Excel 本书就分别实例讲解一下如何使用这两个技术实现导入、导出Excel

    java开发Excel所需 poi jxl两种jar包

    poi是一个Java api组件,用于处理execel和doc文件 jxl可以读取,创建,更新Excel文件,使用该api非windows系统也可以通过纯java来处理Excel。

    Spring Boot中实现列表数据导出为Excel文件

    对于Excel文件,POI提供了HSSF和XSSF两种模型来处理不同版本的Excel文件。HSSF用于处理较旧的Excel格式(.xls),而XSSF用于处理较新的Excel格式(.xlsx)。这些模型都提供了读写Excel工作簿、工作表、单元格等的...

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

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

    POI和JXL两种方式导出EXCEL

    该代码详细介绍了POI和JXL两种方式导出EXCEL文件,与大家一起分享

    java生成excel工具类和demo

    java导出excel,webbook用的是XSSFWorkbook,可以导出超6W的数据,这里提供了两种导出方法

    两种方式实现Java生成Excel

    Web应用中难免会遇到需要将数据导出并生成excel文件的需求。同样,对于本博客中的总结,也是建立在为了完成...  根据自己的梳理,完成这样的需求在自己的技术范围之内比较认可的有两种方式,其一是利用第三方插件JXL实

    java 导出报表实例

    通过四种报表的标识来动态生成Table和Excel 标识可通过cn.com.test.IConstants类获得 调用cn.com.test.vo下的值对象来传递标识和数据 如果使用Object[][]封装数据 可通过cn.com.test.vo.ExlTableArrayVO来传递 如果...

    java写入excel

    java操作excel03,07,用于将数据写入到这两种版本的excel文件的,其他对于excel很好的解决了导出大数据量的时候出现的内存溢出异常问题

    根据jxl,对html中的table进行导出excel

    工具类中有两个方法,一个是根据前台传入的table的html代码进行导出excel(可以只自定义表格名称/sheet页名称)。还一种是根据html文件,代码自动解析出table然后进行excel导出

    大批量excel导出下载

    excel批量导出工具类 1.excel 的相关工具类代码 2.ExcelReader.java 3.ExcelWriter.java 4.关于大批量导出excel的相关方案,以下为常用两种 5.struts2 大压缩包参考代码, 压缩包使用ant.jar

    帆软报表导出各种格式(excel/word/pdf等)

    运行依赖于fr-server-6.5.jar、fr-third-6.5.jar两个jar文件,以及datasource.xml数据库连接定义文件。

    java 使用POI合并两个word文档.docx

    Java 是一种流行的编程语言,POI(Poor Obfuscation Implementation)是一个流行的 Java 库,用于操作 Microsoft Office 文件,包括 Word 文档。合并两个 Word 文档是指将两个独立的 Word 文档合并成一个新的 Word ...

    juecefenxi.zip_java从excel

    本程序通过表格统计和图形分析两种分析方法。在“表格统计”选项卡中以列表形式显示数据,在工具栏中提供了更改表题、导出数据表到Excel表格、保存数据表以及可能生成的统计图为PDF格式的文件和改变表格固定列数量的...

    Excel 工具类,可提供导入和导出的相关方法(JAVA)

    工具类,目前支持xlsx和xls两种类型

    poi-bin-4.1.2-20200217相关jar包

    当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:...目前,比较常用的实现Java导入、导出Excel的技术有两种Jakarta POI和Java Excel。本poi-4.1.2.jar、poi-ooxml-schemas-4.1.2.jar、等

    自定义Excel的上传下载(解析Excel文件)

    实现Excel的上传和下载 存在两种格式的上传和下载,分别对应POI和JXL 可以实现根据Excel模板导出,自定义Excel样式导入 形成自定义的Excel报表等功能。项目为Maven项目,JDK采用1.8

Global site tag (gtag.js) - Google Analytics