`
cometoeye
  • 浏览: 27210 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java利用POI编辑Excel模板文件替换文件内容并保存

    博客分类:
  • Java
阅读更多
ExcelReplaceDataVO 类存储替换内容:

/**
 * Excel替换内容存储对象
 * 
 * @author Administrator
 * 
 */
public class ExcelReplaceDataVO {

	private int row;// Excel单元格行
	private int column;// Excel单元格列
	private String key;// 替换的关键字
	private String value;// 替换的文本

	public int getRow() {
		return row;
	}

	public void setRow(int row) {
		this.row = row;
	}

	public int getColumn() {
		return column;
	}

	public void setColumn(int column) {
		this.column = column;
	}

	public String getKey() {
		return key;
	}

	public void setKey(String key) {
		this.key = key;
	}

	public String getValue() {
		return value;
	}

	public void setValue(String value) {
		this.value = value;
	}

}


利用POI读取Excel内容并替换成新内容:
public class ExcelUtil {

	/**
	 * 替换Excel模板文件内容
	 * @param datas 文档数据
	 * @param sourceFilePath Excel模板文件路径
	 * @param targetFilePath Excel生成文件路径
	 */
	public static boolean replaceModel(List<ExcelReplaceDataVO> datas, String sourceFilePath, String targetFilePath) {
		boolean bool = true;
		try {

			POIFSFileSystem fs  =new POIFSFileSystem(new FileInputStream(sourceFilePath));   
			HSSFWorkbook wb = new HSSFWorkbook(fs);
			HSSFSheet sheet = wb.getSheetAt(0);
			
			for (ExcelReplaceDataVO data : datas) {
				//获取单元格内容
				HSSFRow row = sheet.getRow(data.getRow());   
				HSSFCell cell = row.getCell((short)data.getColumn());
				String str = cell.getStringCellValue();
				
				//替换单元格内容
				str = str.replace(data.getKey(), data.getValue());
				
				//写入单元格内容
				cell.setCellType(HSSFCell.CELL_TYPE_STRING);
				cell.setEncoding(HSSFCell.ENCODING_UTF_16);  
				cell.setCellValue(str);   
			}

			// 输出文件   
			FileOutputStream fileOut = new FileOutputStream(targetFilePath);   
			wb.write(fileOut);   
			fileOut.close();   

		} catch (Exception e) {
			bool = false;
			e.printStackTrace();
		}
		return bool;
	}
}


测试代码:
public class TestExcelReplace {

	public static void main(String[] args) {
		List<ExcelReplaceDataVO> datas = new ArrayList<ExcelReplaceDataVO>();
		
		//找到第14行第2列的company,用"XXX有限公司"替换掉company
		ExcelReplaceDataVO vo1 = new ExcelReplaceDataVO();
		vo1.setRow(13);
		vo1.setColumn(1);
		vo1.setKey("company");
		vo1.setValue("XXX有限公司");

		//找到第5行第2列的content,用"aa替换的内容aa"替换掉content
		ExcelReplaceDataVO vo2 = new ExcelReplaceDataVO();
		vo2.setRow(4);
		vo2.setColumn(1);
		vo2.setKey("content");
		vo2.setValue("aa替换的内容aa");
		
		datas.add(vo1);
		datas.add(vo2);
		//d:\\template.xls为Excel模板文件,d:\\test.xls为程序根据Excel模板文件生成的新文件
		ExcelUtil.replaceModel(datas, "d:\\template.xls", "d:\\test.xls");

}
分享到:
评论

相关推荐

    POI使用Excel模板文件循环输出行并导出Excel

    在这个特定的例子中,我们将讨论如何使用POI库基于一个Excel模板文件循环输出数据行,并将结果导出为新的Excel文件。 首先,我们需要理解POI库的基本概念。POI提供了HSSF(Horizontally SpreadSheet Format)和XSSF...

    java基于poi通过excel模板导出

    在Java编程领域,Apache POI库是一个非常流行的API,它允许开发者读取、写入以及修改Microsoft Office格式的文件,包括Excel。本篇文章将详细探讨如何利用POI库基于模板来导出Excel文档。 首先,我们需要理解Apache...

    java基于poi使用excel模板导出

    在Java开发中,Apache POI库是一个非常流行的用于读写Microsoft Office格式文件的库,包括Excel。本篇文章将深入探讨如何使用Apache POI基于模板来导出Excel文件,以满足数据展示和报告生成的需求。 首先,我们需要...

    使用POI向Excel模板动态添加内容

    本教程将详细讲解如何利用Apache POI库来实现“使用POI向Excel模板动态添加内容”的功能。 首先,让我们了解Apache POI的基本概念。POI是Portable Object Interface的缩写,它提供了API,使得开发人员可以处理...

    读取excel值替换文件内容

    本文将详细讲解如何利用Java编程语言读取Excel中的值,并将其用于替换文件内容中的键值对(key-value pairs)。 首先,我们要了解如何在Java中操作Excel。Java提供了多种库来实现这一功能,如Apache POI和JExcelAPI...

    \"java+poi+Excel模板\"制作简单的报表

    5. **读取模板**: 如果有一个预先设计好的Excel模板,可以用POI读取并保留样式,然后替换特定单元格的数据。 6. **写入数据**: 根据业务逻辑,将动态生成的数据填充到对应的Cell中。 7. **保存文件**: 最后,将修改...

    java使用 POI Excel模板导出数据

    这篇博客"java使用POI Excel模板导出数据"探讨了如何利用POI库在Java中创建Excel模板并填充数据。下面将详细介绍这个过程以及相关知识点。 首先,我们需要理解Apache POI的基本概念。POI是Apache软件基金会的一个...

    poi-tl引擎实现world模板内容替换(支持docx)

    标题中的“poi-tl引擎实现world模板内容替换(支持docx)”指的是使用poi-tl库来操作Word文档模板,并将其中的占位符替换为实际内容。这在需要根据数据动态生成定制化Word报告时非常有用。例如,你可以创建一个包含...

    java实现poi模板生成PPT文件代码

    Apache POI 是一个开源项目,它提供了Java API来处理Microsoft Office格式的文件,如XLS(Excel),DOC(Word)和PPT。在我们的场景中,我们将专注于PPT文件的创建。 2. **POI与PPT文件结构**: PowerPoint文档由...

    java使用poi操作.doc word模板替换,循环插入表格

    本篇文章将深入探讨如何利用POI库在Word文档中进行模板替换以及循环插入表格的操作。 首先,我们需要理解Apache POI的工作原理。POI提供了HWPFOI(用于处理老版的.doc文件)和XWPF(用于处理新版的.docx文件)两个...

    Java POI 生成Excel(xlsx)文件

    在实际开发中,你可能需要根据Excel模板进行数据输出,这通常涉及到读取模板文件,然后替换或插入数据。你可以先使用`XSSFWorkbook`读取模板文件,然后修改其中的Cell内容,最后再写入新的Excel文件。 在压缩包中的...

    Java通过POI读取Excel遍历数据,批量生成word文档

    通过这种方式,你可以根据业务需求,利用Java和Apache POI库实现Excel数据的批处理,生成大量定制化的Word文档。这个过程对于报告生成、自动化数据导出或者大规模邮件合并等场景非常有用。 这个示例代码只是一个...

    poi导出根据模板导出excel和简单列表导出excel源码

    根据模板导出 Excel 的关键是预先创建一个包含静态样式和内容的模板文件,然后在程序运行时替换模板中的动态数据。这通常涉及到以下步骤: - **读取模板**:使用 POI API 打开模板文件,获取工作簿对象。 - **...

    POI替换word模板中的关键字

    Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。在本场景中,我们关注的是如何使用POI来处理Word文档(.docx格式),特别是替换其中的关键字以及动态追加表格...

    java通过poi模板导出excel

    在Java中,我们可以创建一个Excel模板文件,然后使用POI库根据业务逻辑动态替换模板中的占位符。 1. **安装Apache POI**: 在项目中添加Apache POI依赖。如果你使用Maven,可以在pom.xml文件中加入以下依赖: ```...

    Java Poi流根据Word模板插入相应的文本、表格和图片,并生成新的Word报告。

    在模板中,我们可以预留占位符,然后用Java POI的API替换这些占位符为实际内容。 表格的处理则需要用到XWPFTable、XWPFTableRow和XWPFTableCell。你可以创建新的表格,或者找到模板中的表格并添加或修改行和单元格...

    java 生成Excel,可根据模板格式生成 Excel打印专用 报表

    这通常涉及到对Apache POI库的使用,这是一个强大的API,允许程序员在Java中处理Microsoft Office格式的文档,包括Excel(.xlsx)文件。 首先,Apache POI提供了HSSFWorkbook和XSSFWorkbook类,分别用于处理老版的...

    Excel导出数据(根据Excel模板定义)

    总结来说,"Excel导出数据(根据Excel模板定义)"是一项涉及模板设计、Java编程、数据处理和性能优化的技术。使用Apache POI库,我们可以实现根据预设模板动态生成和导出Excel文件,满足各种业务需求。

    Java Poi流 根据Word模板插入相应的文本、表格和图片,生成新的Word报告

    - 具体的代码实现可能涉及多个步骤,包括读取模板文件、解析内容、插入元素、创建新的Word文件并保存。这些步骤可以通过Java的IO流和POI的API结合实现。 7. **注意事项**: - 在处理大文件时,使用流式处理...

    java使用poi根据word模板生成word(图片及文字).zip

    在Java编程领域,Apache POI库是一个非常实用的工具,它允许开发者读写Microsoft Office格式的文件,包括Word(.doc/.docx)、Excel(.xls/.xlsx)和PowerPoint(.ppt/.pptx)。本示例聚焦于使用POI库根据Word模板...

Global site tag (gtag.js) - Google Analytics