当前位置: 首页 > 知识库问答 >
问题:

如何在使用POI生成的excel表中创建从属下拉列表?

羊舌昆杰
2023-03-14

我们在基于java的web应用程序中有一个功能,用户可以从web应用程序下载excel表模板。在此模板中填写他们的数据,然后上载相同的excel工作表。

然后系统读取此excel文件并将此数据保存到数据库中。

下面是模板文件的快照,其中有一些示例数据。

我想要的是,当用户下载模板文件(模板文件通常只有标题,所以用户知道哪些数据在哪一列)时,excel表应该有部门、产品、二级产品、地区和国家的下拉列表。以便用户不会在那些列中输入任何无效值。

同样,产品因部门而异,次级产品因产品而异。它更像是依赖的下拉。

基本上,我需要使用Apache POI创建excel表,其中用户将从drop dowsn中选择值,而不是自己键入。

同样的事情也适用于产品等,用户可以将产品输入为GFFX或GFFX,结构化或GFFX等。

是否可以使用POI在excel表中这样做?如果没有,还有什么其他可能的解决方案或wasy来确保用户知道他们必须在每一列中输入什么?

编辑1:

我可以创建下拉,但是否可以创建依赖下拉?

共有1个答案

祁飞扬
2023-03-14

我正要建议Aura的解决方案,但看起来您确实必须在运行时构建验证列表。

你应该看看POI快速指南,似乎他们正是你需要的:

UserModel(二进制.xls格式

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Data Validation");
CellRangeAddressList addressList = new CellRangeAddressList(0, 0, 0, 0);
DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(new String[]{"10", "20", "30"});
DataValidation dataValidation = new HSSFDataValidation(addressList, dvConstraint);
dataValidation.setSuppressDropDownArrow(false);
sheet.addValidationData(dataValidation);
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Data Validation");
XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper(sheet);
XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint)
dvHelper.createExplicitListConstraint(new String[]{"11", "21", "31"});
CellRangeAddressList addressList = new CellRangeAddressList(0, 0, 0, 0);
XSSFDataValidation validation = (XSSFDataValidation)dvHelper.createValidation(
dvConstraint, addressList);
validation.setShowErrorBox(true);
sheet.addValidationData(validation);
 类似资料:
  • 我需要使用Apache POI在excel文件中创建一个下拉列表。我能够做到这一点,但我不能使下拉列表中的第一个项目作为默认项目。

  • 问题内容: 我需要在Excel工作表中的特定单元格上创建一个下拉列表(数据验证),然后将其读回。 在提供的教程的帮助下,我能够在Excel工作表中创建一个下拉列表,但是再次阅读该列表时,我还需要阅读该下拉列表的内容,以便可以呈现类似的下拉列表在用户界面上列出。 有什么建议? 问题答案: DataValidation甚至存储在HSSF工作簿中,但是它在该库中,并且由于这样,对它的访问权不提供给应用程

  • 我需要两个依赖的下拉列表。在VBA中,我尝试为单个列表创建下拉列表,但我无法使其依赖。下拉列表如下所示 第一个下拉列表的内容 对应的清单2是 对于dd1 对于dd2 就像怀斯。 我已经用完了代码 列表中不能有任何空格/空单元格。 我也试过这个 https://siddharthrot.wordpress.com/2011/07/29/excel-data-validationcreate-dyna

  • 问题内容: 我正在尝试使用Apache POI为一个单元添加一个下拉列表。下拉列表包含302个字符串。我总是收到此错误:Excel在test.xlsx中发现了不可读的内容。 然后,我进行了以下测试。当项目数<= 88时,下拉列表创建成功。当数字> 88时,打开excel文件且没有下拉列表时出现错误。 谢谢 !!! } 问题答案: 首先,我发现这不是Apache POI错误。这是Excel的限制。这

  • 我正在尝试为Android Studio中的一个活动创建一个下拉列表。我试过用旋转器。 下面是我的xml代码: 下面是我的Java代码: 有没有人知道我该怎么做?

  • 如果c.value=activeSheet.range(“A2:A10000”)。value然后“selected GrantNumber”,则在以下位置出现类型不匹配错误: 任何帮助都很感激。谢谢