`

poi 2003/2007 下拉框生成

    博客分类:
  • J2EE
阅读更多
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行




分享到:
评论

相关推荐

    poi导出下拉列表

    在Java编程领域,Apache POI 是一个非常流行的库,它允许开发者读取和写入Microsoft Office格式的文件,包括Excel。本主题将深入探讨如何使用Apache POI来创建具有下拉列表功能的Excel文件,以及如何实现数据有效性...

    Java POI下载Excel模板 Excel带有下拉框的模板

    Java POI下载Excel模板 Excel带有下拉框的模板,并有详细注释,生成exlcel的下拉框,必填项标红,数字栏位防止科学计数法,并设置Excel标题样式

    poi导出excel生成下拉列表

    poi作为导出excel常用的工具,方便快捷。对于excel指定下拉列表的列,如何生成呢?本文提供如何生成下拉列表的excel列

    poi动态生成导入模板,动态下拉菜单

    它提供了HSSF(Horrible Spreadsheet Format)和XSSF(XML Spreadsheet Format)两个API,分别用于处理Excel的97-2003 (.xls)格式和2007及以后的(.xlsx)格式。在创建动态下拉菜单时,我们需要使用XSSF API,因为老版...

    Java 使用POI生成带联动下拉框的excel表格实例代码

    Java 使用POI生成带联动下拉框的excel表格实例代码 Java 是一种广泛使用的编程语言,而 POI(Poor Obfuscation Implementation)则是一个流行的 Java 库,用于读写 Microsoft Office 文件格式,包括 Excel、Word ...

    java poi操作word模版文件生成表单和修改

    在这个场景中,我们将重点讨论如何使用Java POI来操作Word模板文件,生成表单以及进行修改,特别是处理含有下拉框等交互元素的情况。 首先,让我们了解Java POI的基本用法。要操作Word文档,我们需要导入`org....

    poi 生成excel模板,下拉选项,批注。现在有模板中插入下拉信息

    在这个场景中,我们将讨论如何使用 POI 在 Java 中生成带有下拉选项和批注的 Excel 模板。 首先,我们需要理解 POI 的核心组件,如 HSSFWorkbook(用于 .xls 文件)和 XSSFWorkbook(用于 .xlsx 文件)。这些工作簿...

    生成下拉列表excel模板.rar

    在生成下拉列表的过程中,Java代码会使用POI的`DataValidation`和`DataValidationHelper`类。开发者需要定义一个或多个数据验证规则,比如列表验证(List Validation),并将这些规则应用到特定的单元格或单元格区域...

    POI实现excel导入导出及解析

    总结,Apache POI为Java开发者提供了强大的Excel操作能力,无论是简单的数据读取,还是复杂的报表生成,都能轻松应对。通过熟练掌握POI,你可以高效地实现Excel的导入、导出和解析功能,提升工作效率。

    java excel 生成6级级联

    java excel 生成6级级联。加一个poi.jar就行。

    最终生成的级联模版

    这个excel模版是根据我的文章“POI设置级联关系”最终生成的一个模版

    spring mvc easyui-POI导出excel封装源码

    在Spring MVC的后端,开发者可以利用POI库来生成Excel文件,这包括设置工作簿、工作表、行和单元格的数据。例如,从数据库查询到的数据可以被转换为Excel格式,然后通过HTTP响应返回给前端。 在EasyUI的前端,可以...

    java excel 下载功能插件

    4. **jQuery和相关插件**: 提到的`jquery.multiSelect.css`和`jquery.multiSelect.js`是jQuery的多选下拉框插件,可能用于用户选择要下载的Excel数据范围。`jquery.bgiframe.min.js`是一个jQuery插件,提供背景...

    Easyui+SpringMVC导出Excel

    首先,EasyUI是一个基于jQuery的UI库,它提供了丰富的组件,如表格、树、下拉框等,用于快速构建美观且响应式的Web应用界面。在导出Excel的场景中,EasyUI通常用来展示数据,并提供导出按钮触发导出操作。 ...

    专题资料(2021-2022年)javaWEB模块物流项目五.doc

    - 对于分区查询结果的导出,通常采用Apache POI库来生成Excel文件。在服务器端,我们处理查询结果,然后使用POI将数据写入Excel,最后提供一个下载链接给用户。 这个物流项目涵盖了前端交互、后端服务以及数据持久...

    ssm demo(学生管理系统)

    在学生管理系统中,POI可能用于生成学生报表,例如导出学生的成绩表到Excel文件,方便教师分析和打印。 7. **集成过程**: 将SSM整合到一个项目中,需要配置Spring的上下文文件,定义Spring MVC的配置,以及...

    struts2课程

    Struts2可以通过HttpServletResponse对象,配合Apache POI库,生成并提供Excel文件下载。开发者需要设置正确的MIME类型,创建工作簿,添加工作表,填充数据,最后响应到客户端。 "OGNL(Object-Graph Navigation ...

    账单管理及报表

    通过下拉框联动技术,可以实现相关联的数据选择,例如,选择一个往来单位时,自动填充或过滤相关账单信息,提高操作效率。这种技术利用了事件监听和数据绑定的概念,使得UI组件之间的数据交互更为便捷。 按日期进行...

    easyui+ssh(增删改模糊查询,导出数据)

    - **数据导出**:后端可以使用Apache POI库来生成Excel文件,然后通过HTTP响应返回给前端,用户即可下载。 5. **学习资源**: - 由于提供的压缩包包含了一个示例项目,你可以通过阅读代码和注释来了解具体实现...

Global site tag (gtag.js) - Google Analytics