记录部分方法, 操作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标题样式
poi 生成excel模板,下拉选项,批注。现在有模板中插入下拉信息
利用POI读取excel写入到word 利用POI读取excel写入到word 利用POI读取excel写入到word,压缩包里包含了jar包
Poi 写入EXCEL 插入一行Poi 写入EXCEL 插入一行
使用poi解析excel文件,并将数据写入到数据库 项目说明 这个项目实现的功能是读取excel文件中的数据,解析并写入数据库。 读取的excel文件位于项目目录下的 excel\0805.xlsx 使用IntelliJ IDEA开发此项目 使用MYSQL...
poi excel poi excel poi excel poi excel poi excel poi excel poi excel poi excel
poi读写excel,poi总结; poi读写excel,poi总结 poi读写excel,poi总结
POI向excel中插入图片
本代码案例使用java语言,maven管理jar包,POI技术将数据写入到EXCEL文档内。
POI处理excel文件,主要包括Excel的读取、写入,各种数据格式处理、单元格合并、注释、下拉列表及单元格的边框、背景色、宽度调整等。
poi作为导出excel常用的工具,方便快捷。对于excel指定下拉列表的列,如何生成呢?本文提供如何生成下拉列表的excel列
使用POI操作Excel文件(写)可参考:http://blog.csdn.net/flyever581549/archive/2008/11/11/3275850.aspx
POI生成Excel POI读取Excel java操作Excel Servlet生成Excel web项目,包含含读取Excel与生成Excel方法
可以运行的POI导出Excel文件实例,里面有两种方法,一个是Servlet,一个是main
利用 Apache POI 对 excel 操作并存入MySQL数据库的一个小demo。
poi导出下拉列表,数据有效性约束
POI 删除excel列,可以设置多列,POI里怎么没有删除列的API呢
这个是java用poi操作Excel进行导出,并且可以自动换行
使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用
java_poi实现excel导入导出功能,有详细的注解