1. 使用POI3.2.jar创建的提示框不支持中文,最终我换成了POI3.5.jar就能支持中文了.
2. DVConstraint constraint = DVConstraint.createCustomFormulaConstraint("B1");这样写有点问题,提示字段中可输入的值只能输入B1的内容.
这一句的意思是设置约束条件引用B1单元格中的内容,查找API后发现必须要有一个约束才行,我的灵活处理的方法是设置为BB1,一般不会有这么多字段,BB1没有约束就相当于创建了一个没有约束的单元格.
本为是对上一篇博客的中内容的封装,封装后的方法使用起来更方便一些.
效果图:
[java] view plaincopyprint?
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFDataValidation;
- import org.apache.poi.hssf.usermodel.DVConstraint;
- import org.apache.poi.hssf.util.CellRangeAddressList;
- import java.io.IOException;
- import java.io.FileOutputStream;
- 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;
- }
- }
相关推荐
在Java编程领域,Apache POI 是一个非常流行的库,它允许开发者读取和写入Microsoft Office格式的文件,包括Excel。本主题将深入探讨如何使用Apache POI来创建具有下拉列表功能的Excel文件,以及如何实现数据有效性...
在IT行业中,Apache POI 是一个非常著名的Java库,它允许开发者读取、写入和修改Microsoft Office格式的文件,包括Excel(XLS和XLSX)。本话题聚焦于使用POI来动态生成带有下拉菜单的Excel导入模板,这在数据处理、...
Java 使用POI生成带联动下拉框的excel表格实例代码 Java 是一种广泛使用的编程语言,而 POI(Poor Obfuscation Implementation)则是一个流行的 Java 库,用于读写 Microsoft Office 文件格式,包括 Excel、Word ...
在这个场景中,我们将讨论如何使用 POI 在 Java 中生成带有下拉选项和批注的 Excel 模板。 首先,我们需要理解 POI 的核心组件,如 HSSFWorkbook(用于 .xls 文件)和 XSSFWorkbook(用于 .xlsx 文件)。这些工作簿...
通过使用POI,开发者可以在Java应用程序中创建、修改和读取Excel工作簿、工作表、单元格等元素。 二、Excel导入 1. 创建Workbook对象:首先,你需要创建一个Workbook对象,这相当于Excel文件中的一个工作簿。对于...
这里,我们将详细探讨如何使用Java来读取和导出Excel文件,主要涉及的技术包括Apache POI库和其他相关API的使用。 首先,Apache POI是一个流行的开源Java API,它允许开发人员创建、修改和显示Microsoft Office格式...
在Spring MVC的后端,开发者可以利用POI库来生成Excel文件,这包括设置工作簿、工作表、行和单元格的数据。例如,从数据库查询到的数据可以被转换为Excel格式,然后通过HTTP响应返回给前端。 在EasyUI的前端,可以...
- `XWPFTable`类用于创建和操作表格,而`XWPFTableCell`和`XWPFTableRow`分别代表单元格和行。 2. **处理模板文件** - 模板文件通常包含占位符,我们需要找到这些占位符并替换为实际值。这可以通过搜索特定字符串...
Apache POI是一个开源项目,提供了API来读取、创建和修改Microsoft Office格式的文件,包括Excel。 首先,我们需要理解`ExportTemplate.java`这个文件可能的内容。它很可能包含了生成Excel模板的核心逻辑。在这个类...
POI提供了API来创建工作簿、工作表,添加行和单元格,设置样式等。你可以根据数据结构动态生成Excel表格。 5. **设置响应头**:在SpringMVC的响应中,你需要设置合适的HTTP头信息,如`Content-Type`设为`...
4. **jQuery和相关插件**: 提到的`jquery.multiSelect.css`和`jquery.multiSelect.js`是jQuery的多选下拉框插件,可能用于用户选择要下载的Excel数据范围。`jquery.bgiframe.min.js`是一个jQuery插件,提供背景...
2. **遍历Sheet和Row**:现在你可以访问Workbook中的Sheet,然后遍历每一行和每一个单元格,读取其中的数据。 ```csharp var sheet = workbook.GetSheetAt(0); for (var rowIndex = 0; rowIndex ; rowIndex++) {...