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库的基本概念。POI提供了HSSF(Horizontally SpreadSheet Format)和XSSF...
在Java编程领域,Apache POI库是一个非常流行的API,它允许开发者读取、写入以及修改Microsoft Office格式的文件,包括Excel。本篇文章将详细探讨如何利用POI库基于模板来导出Excel文档。 首先,我们需要理解Apache...
本教程将详细讲解如何利用Apache POI库来实现“使用POI向Excel模板动态添加内容”的功能。 首先,让我们了解Apache POI的基本概念。POI是Portable Object Interface的缩写,它提供了API,使得开发人员可以处理...
在Java开发中,Apache POI库是一个非常流行的用于读写Microsoft Office格式文件的库,包括Excel。本篇文章将深入探讨如何使用Apache POI基于模板来导出Excel文件,以满足数据展示和报告生成的需求。 首先,我们需要...
本文将详细讲解如何利用Java编程语言读取Excel中的值,并将其用于替换文件内容中的键值对(key-value pairs)。 首先,我们要了解如何在Java中操作Excel。Java提供了多种库来实现这一功能,如Apache POI和JExcelAPI...
5. **读取模板**: 如果有一个预先设计好的Excel模板,可以用POI读取并保留样式,然后替换特定单元格的数据。 6. **写入数据**: 根据业务逻辑,将动态生成的数据填充到对应的Cell中。 7. **保存文件**: 最后,将修改...
这篇博客"java使用POI Excel模板导出数据"探讨了如何利用POI库在Java中创建Excel模板并填充数据。下面将详细介绍这个过程以及相关知识点。 首先,我们需要理解Apache POI的基本概念。POI是Apache软件基金会的一个...
标题中的“poi-tl引擎实现world模板内容替换(支持docx)”指的是使用poi-tl库来操作Word文档模板,并将其中的占位符替换为实际内容。这在需要根据数据动态生成定制化Word报告时非常有用。例如,你可以创建一个包含...
Apache POI 是一个开源项目,它提供了Java API来处理Microsoft Office格式的文件,如XLS(Excel),DOC(Word)和PPT。在我们的场景中,我们将专注于PPT文件的创建。 2. **POI与PPT文件结构**: PowerPoint文档由...
本篇文章将深入探讨如何利用POI库在Word文档中进行模板替换以及循环插入表格的操作。 首先,我们需要理解Apache POI的工作原理。POI提供了HWPFOI(用于处理老版的.doc文件)和XWPF(用于处理新版的.docx文件)两个...
在实际开发中,你可能需要根据Excel模板进行数据输出,这通常涉及到读取模板文件,然后替换或插入数据。你可以先使用`XSSFWorkbook`读取模板文件,然后修改其中的Cell内容,最后再写入新的Excel文件。 在压缩包中的...
通过这种方式,你可以根据业务需求,利用Java和Apache POI库实现Excel数据的批处理,生成大量定制化的Word文档。这个过程对于报告生成、自动化数据导出或者大规模邮件合并等场景非常有用。 这个示例代码只是一个...
根据模板导出 Excel 的关键是预先创建一个包含静态样式和内容的模板文件,然后在程序运行时替换模板中的动态数据。这通常涉及到以下步骤: - **读取模板**:使用 POI API 打开模板文件,获取工作簿对象。 - **...
Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。在本场景中,我们关注的是如何使用POI来处理Word文档(.docx格式),特别是替换其中的关键字以及动态追加表格...
在Java中,我们可以创建一个Excel模板文件,然后使用POI库根据业务逻辑动态替换模板中的占位符。 1. **安装Apache POI**: 在项目中添加Apache POI依赖。如果你使用Maven,可以在pom.xml文件中加入以下依赖: ```...
在模板中,我们可以预留占位符,然后用Java POI的API替换这些占位符为实际内容。 表格的处理则需要用到XWPFTable、XWPFTableRow和XWPFTableCell。你可以创建新的表格,或者找到模板中的表格并添加或修改行和单元格...
这通常涉及到对Apache POI库的使用,这是一个强大的API,允许程序员在Java中处理Microsoft Office格式的文档,包括Excel(.xlsx)文件。 首先,Apache POI提供了HSSFWorkbook和XSSFWorkbook类,分别用于处理老版的...
总结来说,"Excel导出数据(根据Excel模板定义)"是一项涉及模板设计、Java编程、数据处理和性能优化的技术。使用Apache POI库,我们可以实现根据预设模板动态生成和导出Excel文件,满足各种业务需求。
- 具体的代码实现可能涉及多个步骤,包括读取模板文件、解析内容、插入元素、创建新的Word文件并保存。这些步骤可以通过Java的IO流和POI的API结合实现。 7. **注意事项**: - 在处理大文件时,使用流式处理...
在Java编程领域,Apache POI库是一个非常实用的工具,它允许开发者读写Microsoft Office格式的文件,包括Word(.doc/.docx)、Excel(.xls/.xlsx)和PowerPoint(.ppt/.pptx)。本示例聚焦于使用POI库根据Word模板...