偶将最近写了两个导出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();
}
}
分享到:
- 2009-01-04 10:26
- 浏览 9215
- 评论(1)
- 论坛回复 / 浏览 (0 / 1929)
- 查看更多
相关推荐
java导出数据到excel中的相关jar包。导出Excel的技术有两种Jakarta POI和Java Excel。
在 Java 中,实现 Excel 导入导出可以使用多种方式,本文将介绍使用 JXL 和 POI 两个库实现 Excel 导入导出的方法。 使用 JXL 库实现 Excel 导入导出 JXL(Java Excel API)是一个开源的 Java 库,用于读写 Excel ...
Java 实现 Excel 压缩成 Zip 导出 Java 是一种广泛使用的编程语言,具有强大的功能和灵活性。在 Web 项目中,经常需要将数据导出为 Excel 文件,以便用户可以轻松地查看和编辑数据。然而,当需要导出多个 Excel ...
在我们实际的开发中,很多时候需要实现导入、导出Excel的应用。目前,比较常用的实现Java导入、导出Excel的技术有两种Jakarta POI和Java Excel 本书就分别实例讲解一下如何使用这两个技术实现导入、导出Excel
poi是一个Java api组件,用于处理execel和doc文件 jxl可以读取,创建,更新Excel文件,使用该api非windows系统也可以通过纯java来处理Excel。
对于Excel文件,POI提供了HSSF和XSSF两种模型来处理不同版本的Excel文件。HSSF用于处理较旧的Excel格式(.xls),而XSSF用于处理较新的Excel格式(.xlsx)。这些模型都提供了读写Excel工作簿、工作表、单元格等的...
Excel生成导出JXL和POI两种方式小demo
该代码详细介绍了POI和JXL两种方式导出EXCEL文件,与大家一起分享
java导出excel,webbook用的是XSSFWorkbook,可以导出超6W的数据,这里提供了两种导出方法
Web应用中难免会遇到需要将数据导出并生成excel文件的需求。同样,对于本博客中的总结,也是建立在为了完成... 根据自己的梳理,完成这样的需求在自己的技术范围之内比较认可的有两种方式,其一是利用第三方插件JXL实
通过四种报表的标识来动态生成Table和Excel 标识可通过cn.com.test.IConstants类获得 调用cn.com.test.vo下的值对象来传递标识和数据 如果使用Object[][]封装数据 可通过cn.com.test.vo.ExlTableArrayVO来传递 如果...
java操作excel03,07,用于将数据写入到这两种版本的excel文件的,其他对于excel很好的解决了导出大数据量的时候出现的内存溢出异常问题
工具类中有两个方法,一个是根据前台传入的table的html代码进行导出excel(可以只自定义表格名称/sheet页名称)。还一种是根据html文件,代码自动解析出table然后进行excel导出
excel批量导出工具类 1.excel 的相关工具类代码 2.ExcelReader.java 3.ExcelWriter.java 4.关于大批量导出excel的相关方案,以下为常用两种 5.struts2 大压缩包参考代码, 压缩包使用ant.jar
运行依赖于fr-server-6.5.jar、fr-third-6.5.jar两个jar文件,以及datasource.xml数据库连接定义文件。
Java 是一种流行的编程语言,POI(Poor Obfuscation Implementation)是一个流行的 Java 库,用于操作 Microsoft Office 文件,包括 Word 文档。合并两个 Word 文档是指将两个独立的 Word 文档合并成一个新的 Word ...
本程序通过表格统计和图形分析两种分析方法。在“表格统计”选项卡中以列表形式显示数据,在工具栏中提供了更改表题、导出数据表到Excel表格、保存数据表以及可能生成的统计图为PDF格式的文件和改变表格固定列数量的...
工具类,目前支持xlsx和xls两种类型
当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:...目前,比较常用的实现Java导入、导出Excel的技术有两种Jakarta POI和Java Excel。本poi-4.1.2.jar、poi-ooxml-schemas-4.1.2.jar、等
实现Excel的上传和下载 存在两种格式的上传和下载,分别对应POI和JXL 可以实现根据Excel模板导出,自定义Excel样式导入 形成自定义的Excel报表等功能。项目为Maven项目,JDK采用1.8