`
walkon
  • 浏览: 2852 次
文章分类
社区版块
存档分类
最新评论

POI封装之四

    博客分类:
  • POI
阅读更多

POIWorkbook,应该通过工厂得到IWorkbook比较合理

public class POIWorkbook implements IWorkbook {

	private Workbook wb;

	@Override
	public ISheet getSheetAt(int index) {
		if (wb == null) {
			throw new RuntimeException("call read first.");
		}
		POISheet sheet = new POISheet(wb.getSheetAt(index));
		sheet.setWorkbook(this);
		return sheet;
	}

	@Override
	public void write(File file) throws IOException, Exception {

		FileUtils.touch(file);
		wb.write(new FileOutputStream(file));
	}

	@Override
	public IWorkbook read(File file) throws IOException, Exception {

		wb = WorkbookFactory.create(file);

		return this;
	}

	@Override
	public Iterator<ISheet> iterator() {
		final Iterator<Sheet> i = wb.iterator();
		return new Iterator<ISheet>() {

			@Override
			public boolean hasNext() {
				return i.hasNext();
			}

			@Override
			public ISheet next() {
				return new POISheet(i.next());
			}

			@Override
			public void remove() {
				i.remove();
			}
		};
	}

	@Override
	public Iterator<ISheet> iterator(final ISheetFilter filter) {
		final Iterator<Sheet> i = wb.iterator();
		return new Iterator<ISheet>() {

			@Override
			public boolean hasNext() {
				return i.hasNext();
			}

			@Override
			public ISheet next() {
				ISheet sheet = null;
				while (i.hasNext()) {
					ISheet temp = new POISheet(i.next());
					if (filter.filter(temp)) {
						sheet = temp;
						break;
					}
				}
				return sheet;
			}

			@Override
			public void remove() {
				i.remove();
			}
		};
	}

	@Override
	public ISheet createSheet(String name) {
		POISheet sheet = new POISheet(wb.createSheet(name));
		sheet.setWorkbook(this);
		return sheet;
	}

	@Override
	public ISheet cloneSheet(int index) {
		POISheet sheet = new POISheet(wb.cloneSheet(index));
		sheet.setWorkbook(this);
		return sheet;
	}

	@Override
	public ISheet cloneSheet(String name) {

		return cloneSheet(wb.getSheetIndex(name));
	}

	@Override
	public void removeSheet(String name) {
		wb.removeSheetAt(wb.getSheetIndex(name));
	}

}
分享到:
评论

相关推荐

    poi简单的封装工具

    【标题】"poi简单的封装工具"涉及到的主要知识点是Java中的Apache POI库,这是一个用于处理Microsoft Office格式文件的开源库,特别适用于Excel文件的操作。在Java编程中,Apache POI库提供了一种方便的方式来创建、...

    封装后的POI包

    标题中的“封装后的POI包”指的是一个经过开发者二次封装的Apache POI库,这个库主要用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。在Java开发中,POI是一个非常流行的库,用于读取、写入和修改...

    POI操作Excel的封装

    在这个场景中,"POI操作Excel的封装"指的是对POI API进行的高级抽象和简化,以便于开发人员更方便地处理Excel文件。通过反射和约定,可以创建一个易于使用的API,隐藏底层复杂的POI细节。 反射是Java编程语言中的一...

    java中excel导出工具poi接口封装

    标题提到的"java中excel导出工具poi接口封装"是指开发者为了简化业务代码,提高代码复用性和易用性,对Apache POI的API进行了二次封装。这种封装通常会创建一个或多个高级接口,隐藏了底层复杂的细节,让调用者能更...

    基于poi封装的word-excel-Pdf导出的xdoc设计,xdoc的jar包,加代码

    在你提供的信息中,“基于poi封装的word-excel-Pdf导出的xdoc设计”是一个使用Apache POI进行文件处理的项目,它包含了将数据导出到Word、Excel和PDF格式的功能。 1. **Apache POI**: Apache POI 是一套用于处理...

    poi导出导入封装(使用注解建立实体与excel映射关系+反射设置实体属性值)

    poi导出导入封装(使用注解建立实体与excel映射关系+反射设置实体属性值), poi导出导入封装(使用注解建立实体与excel映射关系+反射设置实体属性值) poi导出导入封装(使用注解建立实体与excel映射关系+反射设置...

    POI web导入导出类封装!

    poi即Excel导入导出,在开发过程中了,为了提高数据录入速度, 一些系统都会使用导入功能,导入目前只能通过流的方式读写,那么为了此操作的便利性,提供此工具类,是原有的excel数据读取到泛型集合中,然后再对集合...

    POI 封装操作Excel(导入、导出)

    本例采用javabean + 注解的方式,对POI进行了封装,旨在针对不同的Excel文档用同样的方法处理,已到达代码的重复利用。该jar包包含导入 Import 和导出 Export Excel两部分。 (一)导入: /** * 描述: Excel 导入...

    Java POI Excel封装例子

    Java POI Excel封装例子 public class ExcelUtils

    poi导出excel二次封装,简单易用,完全不需要了解poi的api就可以使用

    对poi导出excel进行了二次封装,封装后只需要使用模板导出excel就可以了,简单易用,example包里面有几个实例,可以看看,该工程已经上传到github上了,有兴趣的同学可以一起来改进它,...

    高德地图POI搜索封装 iOS 集成一行代码调用

    本教程将详细介绍如何在iOS应用中实现高德地图POI搜索的封装,并通过一行代码调用。 首先,你需要在项目中引入高德地图SDK。可以通过CocoaPods进行管理,添加以下依赖到你的Podfile文件中: ```ruby pod '...

    easypoi POI封装工具类 office开发模板导入导出.zip

    【标题】"easypoi POI封装工具类 office开发模板导入导出"涉及的核心知识点是Java中的easypoi库以及Apache POI项目,它们主要用于处理Microsoft Office文档,如Excel、Word和PowerPoint。easypoi是对Apache POI进行...

    Excel 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封装工具类(兼容office2003和2007等版本)

    4. **封装工具类** 为了提高代码复用性和简化操作,可以将上述基本操作封装到一个工具类中。例如,`ExcelUtilTool`类可能包含如下的方法: - `public static Workbook readExcel(InputStream is)` 用于读取Excel...

    spring-excel-demo--poi 封装对象注解式导入导出--springboot--注释非常完整,适合初学者研究!!!

    只实现了简单的excel导入导出,不支持特殊模版的定义。...1、poi-excel 基本操作(工具) 2、自定义注解的使用 3、全局异常捕获的定义 4、jkd1.8新特性:Lambda 表达式 、函数式接口 等等 5、统一出参包装类 6、lombok

    基于poi的excel导入导出封装

    在"基于poi的excel导入导出封装"这个主题中,我们将深入探讨如何使用Apache POI库来实现Excel文件的导入和导出功能。 **一、Apache POI基本概念** 1. **工作簿(Workbook)**: 在Apache POI中,工作簿是Excel文件...

    java excle导出封装 poi jxls exlce导出源码

    4. **执行转换**:调用jXLS的transform方法,将数据填充到模板并生成新的Excel文件。 5. **导出或保存文件**:根据需求,可以选择保存到本地或通过HTTP响应流发送到客户端。 在提供的源码中,可能已经封装了这些...

    POI操作EXCEL文件的简单封装

    本篇文章将深入探讨如何使用Apache POI对Excel文件进行简单的封装,以便在Java项目中更方便地操作Excel数据。 首先,我们需要了解Apache POI的基本概念。POI提供了HSSF和XSSF两个API,分别用于处理老版本的BIFF8...

    基于poi对excel操作的简单封装和必要的poi3.17包

    基于poi对excel操作的简单封装及必要的poi3.17包。针对excel文件或输入流,按行或者单元格解析处理,提供简单的通用单元格数据获取方法(数字类单元格返回Double, 日期返回Date, 公式返回计算后的结果,其它返回...

    poi导出excel demo

    4. **样式和格式**: Apache POI还允许你为单元格定义样式,如字体、颜色、对齐方式等。你可以创建CellStyle对象,设置所需的属性,然后将其应用到Cell上。 5. **写入文件**: 最后,你需要将Workbook对象写入到...

Global site tag (gtag.js) - Google Analytics