手工设置:
excel菜单栏上--数据--有效性--允许--序列,
excel菜单栏上--数据--有效性--输入信息.
程序现实:
首先,http://poi.apache.org/官方下载POI3.2 jar包.
注:经本人测试转载的文章中有一些错误:
1. 使用POI3.2.jar创建的提示框不支持中文,最终我换成了POI3.5.jar就能支持中文了.
2. DVConstraint constraint = DVConstraint.createCustomFormulaConstraint("B1");这样写有点问题,提示字段中可输入的值只能输入B1的内容.
这一句的意思是设置约束条件引用B1单元格中的内容,查找API后发现必须要有一个约束才行,我的灵活处理的方法是设置为BB1,一般不会有这么多字段,BB1没有约束就相当于创建了一个没有约束的单元格.
本为是对上一篇博客的中内容的封装,封装后的方法使用起来更方便一些.
效果图:
import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.hssf.usermodel.DVConstraint; import org.apache.poi.hssf.usermodel.HSSFDataValidation; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.CellRangeAddressList; public class PoiTest2 { public static void main(String[] args) throws IOException { HSSFWorkbook wb = new HSSFWorkbook();// excel文件对象 HSSFSheet sheetlist = wb.createSheet("sheetlist");// 工作表对象 FileOutputStream out = new FileOutputStream("d:\\success.xls"); String[] textlist = { "列表1", "列表2", "列表3", "列表4", "列表5" }; sheetlist = setHSSFValidation(sheetlist, textlist, 0, 500, 0, 0);// 第一列的前501行都设置为选择列表形式. // sheetlist = setHSSFPrompt(sheetlist, "promt Title", "prompt Content", // 0, 500, 1, 1);// 第二列的前501行都设置提示. wb.write(out); out.close(); } /** * 设置某些列的值只能输入预制的数据,显示下拉框. * * @param sheet * 要设置的sheet. * @param textlist * 下拉框显示的内容 * @param firstRow * 开始行 * @param endRow * 结束行 * @param firstCol * 开始列 * @param endCol * 结束列 * @return 设置好的sheet. */ public static HSSFSheet setHSSFValidation(HSSFSheet sheet, String[] textlist, int firstRow, int endRow, int firstCol, int endCol) { // 加载下拉列表内容 DVConstraint constraint = DVConstraint .createExplicitListConstraint(textlist); // 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列 CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol); // 数据有效性对象 HSSFDataValidation data_validation_list = new HSSFDataValidation( regions, constraint); sheet.addValidationData(data_validation_list); return sheet; } /** * 设置单元格上提示 * * @param sheet * 要设置的sheet. * @param promptTitle * 标题 * @param promptContent * 内容 * @param firstRow * 开始行 * @param endRow * 结束行 * @param firstCol * 开始列 * @param endCol * 结束列 * @return 设置好的sheet. */ public static HSSFSheet setHSSFPrompt(HSSFSheet sheet, String promptTitle, String promptContent, int firstRow, int endRow, int firstCol, int endCol) { // 构造constraint对象 DVConstraint constraint = DVConstraint .createCustomFormulaConstraint("BB1"); // 四个参数分别是:起始行、终止行、起始列、终止列 CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol); // 数据有效性对象 HSSFDataValidation data_validation_view = new HSSFDataValidation( regions, constraint); data_validation_view.createPromptBox(promptTitle, promptContent); sheet.addValidationData(data_validation_view); return sheet; } }
相关推荐
例如,我们可以设置一个单元格只接受特定范围的数字、日期,或者从预定义的下拉列表中选择。这种功能在数据录入、报表制作和数据分析中非常有用,可以提高数据的一致性和准确性。 Apache POI 提供了 `DVConstraint`...
在我们的示例代码中,我们定义了一个 NamedCellStyle 对象,用于设置单元格的背景色、边框样式和字体样式。 我们的示例代码演示了如何使用 POI 库生成带联动下拉框的 Excel 表格实例代码。这种技术可以广泛应用于...
使用 `createCellComment()` 方法创建批注,设置批注内容和位置,然后将其关联到单元格。 ```java RichTextString commentString = new XSSFRichTextString("这是批注内容"); Comment comment = sheet....
在IT行业中,Apache POI 是一个非常著名的Java库,它允许开发者读取、写入和修改Microsoft Office格式的文件,包括Excel(XLS和XLSX)。本话题聚焦于使用POI来动态生成带有下拉菜单的Excel导入模板,这在数据处理、...
2. 添加Row和Cell:在Sheet上添加Row,然后在Row上添加Cell,设置单元格的值。 ```java Sheet sheet = workbook.createSheet("Sheet1"); Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell....
这里,我们将详细探讨如何使用Java来读取和导出Excel文件,主要涉及的技术包括Apache POI库和其他相关API的使用。 首先,Apache POI是一个流行的开源Java API,它允许开发人员创建、修改和显示Microsoft Office格式...
列表验证允许用户从预定义的选项中选择,这正是下拉列表的功能。数据库查询的结果可以作为这些选项的来源。 `生成下拉列表excel.txt`文件可能是记录了生成下拉列表Excel的步骤或者是一份说明文档。里面可能包含以下...
在Spring MVC的后端,开发者可以利用POI库来生成Excel文件,这包括设置工作簿、工作表、行和单元格的数据。例如,从数据库查询到的数据可以被转换为Excel格式,然后通过HTTP响应返回给前端。 在EasyUI的前端,可以...
在“java poi操作word模版文件生成表单和修改”的场景中,我们将重点讨论如何利用Java POI来处理Word模板文件,生成表单,并处理包含下拉框等交互元素的情况。 1. **创建和读取Word文档** - 使用Apache POI的`...
4. **jQuery和相关插件**: 提到的`jquery.multiSelect.css`和`jquery.multiSelect.js`是jQuery的多选下拉框插件,可能用于用户选择要下载的Excel数据范围。`jquery.bgiframe.min.js`是一个jQuery插件,提供背景...
POI提供了API来创建工作簿、工作表,添加行和单元格,设置样式等。你可以根据数据结构动态生成Excel表格。 5. **设置响应头**:在SpringMVC的响应中,你需要设置合适的HTTP头信息,如`Content-Type`设为`...
2. **遍历Sheet和Row**:现在你可以访问Workbook中的Sheet,然后遍历每一行和每一个单元格,读取其中的数据。 ```csharp var sheet = workbook.GetSheetAt(0); for (var rowIndex = 0; rowIndex ; rowIndex++) {...