POI 提供了很好的Excel 操作API,我这是用POI 3.8 主要核心jar包
poi-3.8-20120326.jar
poi-ooxml-3.8-20120326.jar
/**
* 生成下载模板,附带下拉框
* @param wb :工作簿
* @param datas:下拉框数据源
* @param selectCols:要生成下拉框的列
* @param sheetName:放置下拉框的sheet名称
* @param dataCol:放置下拉框数据的col字母
* @param dataColNum:放置下拉框数据的col 数字 0开始
* @param maxSelCols:生成下拉框的行数
* @return
*/
public static Workbook createSelectSheet(Workbook wb,
String[] datas,
int selectCols,
String sheetName,String dataCol,
int dataColNum,int maxSelCols){
DataValidationHelper dvHelper = null;
DataValidationConstraint dvConstraint = null;
DataValidation validation = null;
CellRangeAddressList addressList = null;
Sheet hidden = wb.createSheet(sheetName);//创建隐藏的sheet 用于放置下拉数据
wb.setSheetHidden(wb.getNumberOfSheets() -1, true);//专门放置数据源的sheet
Name namedCell = wb.createName();
namedCell.setNameName(sheetName);
// namedCell.setRefersToFormula(sheetName+"!$A$1:$A$10" + datas.length);
namedCell.setRefersToFormula(sheetName+"!$"+dataCol+"$1:$"+dataCol+"$"+datas.length);
Sheet sheet = wb.getSheetAt(0);
int sheetRows = maxSelCols;//当前sheet页的行数
Row row = null;
Cell cell = null;
if (wb instanceof HSSFWorkbook) {//xls
for (int i = 0, length = datas.length; i < length; i++) { //将数据源的数据放置到选定sheet的一列
row = (HSSFRow)hidden.createRow(i);
cell = (HSSFCell)row.createCell(dataColNum);
cell.setCellValue(datas[i]);
}
DVConstraint constraint = DVConstraint.createFormulaListConstraint(sheetName);
addressList = new CellRangeAddressList(1, sheetRows, selectCols, selectCols);
validation = new HSSFDataValidation(addressList, constraint);
sheet.addValidationData(validation);
validation.setShowErrorBox(false);// 取消弹出错误框
} else {//XLSX
for (int i = 0, length = datas.length; i < length; i++) {
row = (XSSFRow)hidden.createRow(i);
cell = (XSSFCell)row.createCell(dataColNum);
cell.setCellValue(datas[i]);
}
dvHelper = new XSSFDataValidationHelper((XSSFSheet) sheet);
dvConstraint = (XSSFDataValidationConstraint) dvHelper.createFormulaListConstraint(sheetName);
addressList = new CellRangeAddressList(1, sheetRows, selectCols, selectCols);
validation = (XSSFDataValidation) dvHelper.createValidation(
dvConstraint, addressList);
sheet.addValidationData(validation);//将下拉框放置到sheet
}
return wb;
}
调用此方法
wb = ExcelUtil.createSelectSheet(wb, list, 5,"hd","A",0,65534);//创建机构名称的下拉框
list 是数据源 string 数组
5 是 放置到模板的第6列
hd 是隐藏放置下拉框数据的sheet
A 是sheet中放置下拉数据的列
0表示第一列
65534 在模板中生成下拉框65534行
分享到:
相关推荐
在Java编程领域,Apache POI 是一个非常流行的库,它允许开发者读取和写入Microsoft Office格式的文件,包括Excel。本主题将深入探讨如何使用Apache POI来创建具有下拉列表功能的Excel文件,以及如何实现数据有效性...
Java POI下载Excel模板 Excel带有下拉框的模板,并有详细注释,生成exlcel的下拉框,必填项标红,数字栏位防止科学计数法,并设置Excel标题样式
poi作为导出excel常用的工具,方便快捷。对于excel指定下拉列表的列,如何生成呢?本文提供如何生成下拉列表的excel列
它提供了HSSF(Horrible Spreadsheet Format)和XSSF(XML Spreadsheet Format)两个API,分别用于处理Excel的97-2003 (.xls)格式和2007及以后的(.xlsx)格式。在创建动态下拉菜单时,我们需要使用XSSF API,因为老版...
Java 使用POI生成带联动下拉框的excel表格实例代码 Java 是一种广泛使用的编程语言,而 POI(Poor Obfuscation Implementation)则是一个流行的 Java 库,用于读写 Microsoft Office 文件格式,包括 Excel、Word ...
在这个场景中,我们将重点讨论如何使用Java POI来操作Word模板文件,生成表单以及进行修改,特别是处理含有下拉框等交互元素的情况。 首先,让我们了解Java POI的基本用法。要操作Word文档,我们需要导入`org....
在这个场景中,我们将讨论如何使用 POI 在 Java 中生成带有下拉选项和批注的 Excel 模板。 首先,我们需要理解 POI 的核心组件,如 HSSFWorkbook(用于 .xls 文件)和 XSSFWorkbook(用于 .xlsx 文件)。这些工作簿...
在生成下拉列表的过程中,Java代码会使用POI的`DataValidation`和`DataValidationHelper`类。开发者需要定义一个或多个数据验证规则,比如列表验证(List Validation),并将这些规则应用到特定的单元格或单元格区域...
总结,Apache POI为Java开发者提供了强大的Excel操作能力,无论是简单的数据读取,还是复杂的报表生成,都能轻松应对。通过熟练掌握POI,你可以高效地实现Excel的导入、导出和解析功能,提升工作效率。
java excel 生成6级级联。加一个poi.jar就行。
这个excel模版是根据我的文章“POI设置级联关系”最终生成的一个模版
在Spring MVC的后端,开发者可以利用POI库来生成Excel文件,这包括设置工作簿、工作表、行和单元格的数据。例如,从数据库查询到的数据可以被转换为Excel格式,然后通过HTTP响应返回给前端。 在EasyUI的前端,可以...
4. **jQuery和相关插件**: 提到的`jquery.multiSelect.css`和`jquery.multiSelect.js`是jQuery的多选下拉框插件,可能用于用户选择要下载的Excel数据范围。`jquery.bgiframe.min.js`是一个jQuery插件,提供背景...
首先,EasyUI是一个基于jQuery的UI库,它提供了丰富的组件,如表格、树、下拉框等,用于快速构建美观且响应式的Web应用界面。在导出Excel的场景中,EasyUI通常用来展示数据,并提供导出按钮触发导出操作。 ...
- 对于分区查询结果的导出,通常采用Apache POI库来生成Excel文件。在服务器端,我们处理查询结果,然后使用POI将数据写入Excel,最后提供一个下载链接给用户。 这个物流项目涵盖了前端交互、后端服务以及数据持久...
在学生管理系统中,POI可能用于生成学生报表,例如导出学生的成绩表到Excel文件,方便教师分析和打印。 7. **集成过程**: 将SSM整合到一个项目中,需要配置Spring的上下文文件,定义Spring MVC的配置,以及...
Struts2可以通过HttpServletResponse对象,配合Apache POI库,生成并提供Excel文件下载。开发者需要设置正确的MIME类型,创建工作簿,添加工作表,填充数据,最后响应到客户端。 "OGNL(Object-Graph Navigation ...
通过下拉框联动技术,可以实现相关联的数据选择,例如,选择一个往来单位时,自动填充或过滤相关账单信息,提高操作效率。这种技术利用了事件监听和数据绑定的概念,使得UI组件之间的数据交互更为便捷。 按日期进行...
- **数据导出**:后端可以使用Apache POI库来生成Excel文件,然后通过HTTP响应返回给前端,用户即可下载。 5. **学习资源**: - 由于提供的压缩包包含了一个示例项目,你可以通过阅读代码和注释来了解具体实现...