public class POISheet implements ISheet {
private Sheet sheet;
private IWorkbook wb;
POISheet(Sheet sheet) {
this.sheet = sheet;
}
@Override
public IRow getRow(int index) {
return newPOIRow(sheet.getRow(index));
}
@Override
public Iterator<IRow> iterator() {
final Iterator<Row> rowIterator = sheet.iterator();
return new Iterator<IRow>() {
@Override
public boolean hasNext() {
return rowIterator.hasNext();
}
@Override
public IRow next() {
Row row = rowIterator.next();
if (null != row) {
return newPOIRow(row);
}
return null;
}
@Override
public void remove() {
}
};
}
@Override
public Iterator<IRow> iterator(final IRowFilter filter) {
final Iterator<Row> rowIterator = sheet.iterator();
return new Iterator<IRow>() {
@Override
public boolean hasNext() {
return rowIterator.hasNext();
}
@Override
public IRow next() {
IRow row = null;
while (rowIterator.hasNext()) {
IRow temp = newPOIRow(rowIterator.next());
if (filter.filter(temp)) {
row = temp;
break;
}
}
return row;
}
@Override
public void remove() {
}
};
}
@Override
public IRow createRow(int index) {
return newPOIRow(sheet.createRow(index));
}
private POIRow newPOIRow(Row row) {
POIRow r = new POIRow(row);
r.setSheet(this);
return r;
}
@Override
public String getName() {
return sheet.getSheetName();
}
@Override
public IWorkbook getWorkbook() {
return wb;
}
void setWorkbook(IWorkbook wb) {
this.wb = wb;
}
@Override
public ISheet setName(String name) {
Workbook workbook = sheet.getWorkbook();
workbook.setSheetName(workbook.getSheetIndex(sheet), name);
return this;
}
}
public class POIRow implements IRow {
private Row row;
private ISheet sheet;
POIRow(Row row) {
this.row = row;
}
@Override
public ICell getCell(String x) {
return getPOICell(x);
}
@Override
public <T> T bind(IRowBinder<T> irb) {
return irb.bind(this);
}
public ICell createCell(String x) {
return createCell(x, ICell.CELL_TYPE_STRING);
}
@Override
public ICell createCell(String x, int cellType) {
return newPOICell(x, cellType);
}
private POICell newPOICell(String x, int cellType) {
POICell cell = new POICell(row.createCell(Initor.LN.get(x), cellType),
x);
cell.setRow(this);
return cell;
}
private POICell getPOICell(String x) {
Cell cell_ = row.getCell(Initor.LN.get(x));
if (cell_ == null) {
cell_ = row.createCell(Initor.LN.get(x),ICell.CELL_TYPE_STRING);
}
POICell cell = new POICell(cell_, x);
cell.setRow(this);
return cell;
}
@Override
public <T> void marshall(IRowMarshaller<T> marshaller, T t) {
marshaller.marshall(this, t);
}
@Override
public int getRowNum() {
return row.getRowNum();
}
@Override
public ISheet getSheet() {
return this.sheet;
}
void setSheet(ISheet sheet) {
this.sheet = sheet;
}
}
分享到:
相关推荐
【标题】"poi简单的封装工具"涉及到的主要知识点是Java中的Apache POI库,这是一个用于处理Microsoft Office格式文件的开源库,特别适用于Excel文件的操作。在Java编程中,Apache POI库提供了一种方便的方式来创建、...
标题中的“封装后的POI包”指的是一个经过开发者二次封装的Apache POI库,这个库主要用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。在Java开发中,POI是一个非常流行的库,用于读取、写入和修改...
在这个场景中,"POI操作Excel的封装"指的是对POI API进行的高级抽象和简化,以便于开发人员更方便地处理Excel文件。通过反射和约定,可以创建一个易于使用的API,隐藏底层复杂的POI细节。 反射是Java编程语言中的一...
标题提到的"java中excel导出工具poi接口封装"是指开发者为了简化业务代码,提高代码复用性和易用性,对Apache POI的API进行了二次封装。这种封装通常会创建一个或多个高级接口,隐藏了底层复杂的细节,让调用者能更...
在你提供的信息中,“基于poi封装的word-excel-Pdf导出的xdoc设计”是一个使用Apache POI进行文件处理的项目,它包含了将数据导出到Word、Excel和PDF格式的功能。 1. **Apache POI**: Apache POI 是一套用于处理...
poi导出导入封装(使用注解建立实体与excel映射关系+反射设置实体属性值), poi导出导入封装(使用注解建立实体与excel映射关系+反射设置实体属性值) poi导出导入封装(使用注解建立实体与excel映射关系+反射设置...
poi即Excel导入导出,在开发过程中了,为了提高数据录入速度, 一些系统都会使用导入功能,导入目前只能通过流的方式读写,那么为了此操作的便利性,提供此工具类,是原有的excel数据读取到泛型集合中,然后再对集合...
本例采用javabean + 注解的方式,对POI进行了封装,旨在针对不同的Excel文档用同样的方法处理,已到达代码的重复利用。该jar包包含导入 Import 和导出 Export Excel两部分。 (一)导入: /** * 描述: Excel 导入...
Java POI Excel封装例子 public class ExcelUtils
对poi导出excel进行了二次封装,封装后只需要使用模板导出excel就可以了,简单易用,example包里面有几个实例,可以看看,该工程已经上传到github上了,有兴趣的同学可以一起来改进它,...
本教程将详细介绍如何在iOS应用中实现高德地图POI搜索的封装,并通过一行代码调用。 首先,你需要在项目中引入高德地图SDK。可以通过CocoaPods进行管理,添加以下依赖到你的Podfile文件中: ```ruby pod '...
【标题】"easypoi POI封装工具类 office开发模板导入导出"涉及的核心知识点是Java中的easypoi库以及Apache POI项目,它们主要用于处理Microsoft Office文档,如Excel、Word和PowerPoint。easypoi是对Apache POI进行...
Excel POI读取封装(文件+示范代码) package org.excel.service; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java....
以下是对"java中poi读写excel封装工具类"这一主题的详细解释。 1. **Apache POI介绍** Apache POI是一个开源项目,允许Java开发者创建、修改和显示Microsoft Office文件,包括Excel、Word和PowerPoint。它的核心...
只实现了简单的excel导入导出,不支持特殊模版的定义。...1、poi-excel 基本操作(工具) 2、自定义注解的使用 3、全局异常捕获的定义 4、jkd1.8新特性:Lambda 表达式 、函数式接口 等等 5、统一出参包装类 6、lombok
在"基于poi的excel导入导出封装"这个主题中,我们将深入探讨如何使用Apache POI库来实现Excel文件的导入和导出功能。 **一、Apache POI基本概念** 1. **工作簿(Workbook)**: 在Apache POI中,工作簿是Excel文件...
Apache POI和jXLS是两个在Java世界中处理Excel文件的流行库。本文将深入探讨这两个库以及如何利用它们进行Excel导出,并结合提供的源码进行封装。 Apache POI是一个开源项目,它提供了读取和写入Microsoft Office...
2. **poi-util**:这是一个可能包含POI相关实用工具类的模块或包,提供了对POI操作的封装,便于代码复用和功能扩展。 3. **poi-hello**:这可能是项目中的一个起始模块或示例代码,以“hello”命名,通常用于展示...
本篇文章将深入探讨如何使用Apache POI对Excel文件进行简单的封装,以便在Java项目中更方便地操作Excel数据。 首先,我们需要了解Apache POI的基本概念。POI提供了HSSF和XSSF两个API,分别用于处理老版本的BIFF8...
基于poi对excel操作的简单封装及必要的poi3.17包。针对excel文件或输入流,按行或者单元格解析处理,提供简单的通用单元格数据获取方法(数字类单元格返回Double, 日期返回Date, 公式返回计算后的结果,其它返回...