`
爱琴海的水手
  • 浏览: 57732 次
  • 性别: 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

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

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

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

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

    poi是一个Java api组件,用于处理execel和doc文件 jxl可以读取,创建,更新Excel文件,使用该api非windows系统也可以通过纯java来处理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数据库连接定义文件。

    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

    HistoryExportHelper.java

    java利用POI接口导出excel文件,并将图片URL转化为图片输出到excel文件中。代码提供了两种方式的导出,值得注意的是服务内存的控制,如果图片过大,建议限流导出

    java收银系统源码-joda-file-export:基于JodaBeans和Springreactor的通用Java库,用于导出/下载或转

    这两种方法要么导致大量样板代码或 Java 性能问题反射。 其想法是能够通过名称访问 Java bean 的属性,而无需使用反射和迭代 bean 的属性将它们一一写入文件列中。 除了能够将 Java bean 视为集合并因此迭代 bean ...

    ExcelKit.java

    Java-Excel数据读取,导出数据为Excel文件,支持xls和xlsx两种版本,使用起来简单,在此基础上修改容易

Global site tag (gtag.js) - Google Analytics