记录部分方法, 操作POI
POI version
<poi.version>3.10-FINAL</poi.version>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${poi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version>
</dependency>
1.首先根据路径读取Excel模板
/**
* 读取服务器上面的上传的excel文件
*
* @param path
* @return
*/
public static Workbook readWorkBook(String path) {
Workbook wb = null;
try {
wb = WorkbookFactory.create(new File(path));
} catch (InvalidFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return wb;
}
2.获取到workbook后,设置哪些行列是下拉框[Select下拉],并设置数据
public String rewriteExcelTempAtEmp(String instance, String path, String upload) {
//读取默认模板Excel文件
Workbook workbook = ExcelUtils.readWorkBook(path);
Sheet sheet = workbook.getSheetAt(0);
DataValidationHelper helper = sheet.getDataValidationHelper();
//CellRangeAddressList(firstRow, lastRow, firstCol, lastCol)设置行列范围
CellRangeAddressList addressList = new CellRangeAddressList(3, 500, 17, 17);
//设置下拉框数据
String[]pos = posStatusName(instance);
DataValidationConstraint constraint = helper.createExplicitListConstraint(pos);
DataValidation dataValidation = helper.createValidation(constraint, addressList);
//处理Excel兼容性问题
if(dataValidation instanceof XSSFDataValidation) {
dataValidation.setSuppressDropDownArrow(true);
dataValidation.setShowErrorBox(true);
}else {
dataValidation.setSuppressDropDownArrow(false);
}
sheet.addValidationData(dataValidation);
String fileName = StringUtils.substringAfterLast(path, "/");
String newPath = upload+ExcelUtils.getRename(fileName, false);
//由于POI打开读取文件后再保存时bug问题, 只能重新定义一个新的Excel写入数据
ExcelUtils.createExcel(workbook, newPath);
return newPath;
}
3.由于workbook读取后,在保存原来excel会出现错误,这个是poi的一个小bug吧,官方
也没有看到怎么解释,只能修改后, 重新命名保存一个新的Excel模板
/**
* 根据路径创建Excel
* @author lance
* 2014年8月13日 下午4:06:10
* @param workbook
* @param path
*/
public static void createExcel(Workbook workbook, String path) {
FileOutputStream fileOut = null;
try {
fileOut = new FileOutputStream(path);
workbook.write(fileOut);
} catch (Exception e) {
logger.error("Error create excel: ", e.getMessage());
} finally {
try {
if(fileOut != null) {
fileOut.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
Java POI下载Excel模板 Excel带有下拉框的模板,并有详细注释,生成exlcel的下拉框,必填项标红,数字栏位防止科学计数法,并设置Excel标题样式
本篇文章将详细讲解如何利用Apache POI库来读取Excel数据并将其写入到Word文档中。 首先,我们需要了解Apache POI的基本概念。POI提供了一组API,允许程序员在Java应用程序中创建、修改和显示这些文件。对于Excel...
Poi 写入EXCEL 插入一行Poi 写入EXCEL 插入一行
在这个场景中,我们将讨论如何使用 POI 在 Java 中生成带有下拉选项和批注的 Excel 模板。 首先,我们需要理解 POI 的核心组件,如 HSSFWorkbook(用于 .xls 文件)和 XSSFWorkbook(用于 .xlsx 文件)。这些工作簿...
使用poi解析excel文件,并将数据写入到数据库 项目说明 这个项目实现的功能是读取excel文件中的数据,解析并写入数据库。 读取的excel文件位于项目目录下的 excel\0805.xlsx 使用IntelliJ IDEA开发此项目 使用MYSQL...
以下是一个简单的Java示例,演示如何使用POI写入Excel: ```java import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import java.io.FileOutputStream; public class ...
本文将详细讲解如何利用POI将数据写入到Excel文档。 首先,你需要确保已经设置了Maven项目,并在pom.xml文件中添加了Apache POI的依赖。POI的最新版本通常可以在这里找到:...
Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 ...在本文中,我们已经详细介绍了如何使用 Java POI 实现 Excel 导入导出功能,包括读取和写入 Excel 文件。
在Java编程领域,Apache POI 是一个非常流行的库,它允许开发者读取和写入Microsoft Office格式的文件,包括Excel。本主题将深入探讨如何使用Apache POI来创建具有下拉列表功能的Excel文件,以及如何实现数据有效性...
POI处理excel文件,主要包括Excel的读取、写入,各种数据格式处理、单元格合并、注释、下拉列表及单元格的边框、背景色、宽度调整等。
Apache POI是一个流行的Java库,专门用于处理Microsoft Office格式的文件,包括Excel、Word和PowerPoint。在本文中,我们将深入探讨如何使用Apache POI来创建和修改Excel工作簿,特别是进行写操作。 首先,要使用...
Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,包括Excel。在本文中,我们将深入探讨如何使用POI库向Excel工作簿中插入图片。这将涵盖相关的API,步骤以及一些实用技巧。 首先,我们需要...
poi作为导出excel常用的工具,方便快捷。对于excel指定下拉列表的列,如何生成呢?本文提供如何生成下拉列表的excel列
Apache POI是一个流行的Java库,用于读取和写入Microsoft Office格式的文件,尤其是Excel(.xlsx和.xls)文件。这个实例提供了两种方法来导出Excel文件:通过Servlet和通过main方法。这两种方法都是在Java环境中操作...
通过上述介绍,我们可以看到 Apache POI 提供了非常强大的功能来处理 Excel 文件,无论是读取还是写入都非常方便。掌握 POI 的基本用法对于开发人员来说是非常有用的技能,特别是在需要处理大量数据时更是如此。希望...
Apache POI 是一个开源项目,专门用于处理 Microsoft Office 格式的文件,如 Word、Excel 和 PowerPoint。在这个"利用POI解析excel并存入数据库demo"中,我们将关注如何使用 POI 库来读取 Excel 文件,并将数据有效...
本文将深入探讨如何使用Jxl和Apache POI库来读取和写入Excel文件,同时会区分2007年之后的.xlsx格式(基于OpenXML)和2003及之前的.xls格式(基于BIFF)。 首先,让我们了解一下Jxl库。Jxl是Java Excel API的简称,...
在IT行业中,Apache POI 是一个非常著名的Java库,它允许开发者读取、写入和修改Microsoft Office格式的文件,包括Excel(XLS和XLSX)。本话题聚焦于使用POI来动态生成带有下拉菜单的Excel导入模板,这在数据处理、...
标题 "POI 生成EXCEL2007【含例子】" 涉及到的知识点主要集中在Apache POI库的使用上,这是一个强大的Java API,用于读取、写入和修改Microsoft Office格式的文件,特别是Excel文件。在这个场景中,重点是创建和操作...
POI 删除excel列,可以设置多列,POI里怎么没有删除列的API呢