我们有我们的基于Java的Web应用程序的功能中,用户可以从Web应用程序下载一个Excel工作表模板。 填写他们的数据在此模板,然后上载同一个Excel表。
然后,系统读取该Excel文件,并保存在数据库中的这些数据。
下面是它的一些样本数据模板文件的快照。
当用户下载模板文件(模板文件通常只是有头,让用户了解哪些数据适合哪个列),Excel工作表应该有部门,产品,辅助产品,地区和国家的下拉菜单我要的是。 这样用户就不会在这些列中输入任何无效的值。
同样,产品根据司和根据产品次级产品的变化而变化。 它更像是依赖下拉菜单。
基本上,我将需要创建使用Apache POI的Excel工作表,其中用户将从dowsn而不是键入它themselevs下拉选择值。
尽管我们有服务器端验证,我们检查用户输入的值是有效还是无效。
我们wnat这样做的原因是,例如,一些用户可能输入国为美国,一些如美国和一些为美国。
同样的事情也适用于产品等。用户可以输入产品的GFFX或GFFX结构化或gffx等。
是否有可能使用POI为此在Excel工作表? 如果没有什么其他可能的解决方案或WASY,以确保用户知道他们有什么在每列中输入?
编辑1:
我创建了下拉菜单,但有可能产生依赖下拉菜单?
我正要建议灵气的解决方案,但它看起来像你必须确实建立在运行时验证列表。
你应该看看POI快速指南 ,看来他们有你需要的东西:
hssf.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);
xssf.usermodel(.XLSX格式)
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);
你可以下拉列表的情况下,您添加(使用POI)的建议,上排的第一行是对用户可见,应填写(因此标题下面的行包含(点击鼠标右键后)建议,但是hgidden)。
你不会得到与POI,甚至纯粹的Excel文件(没有VBA)(据我所知)类扶养下拉列表(的基础上持有建议的值较早进入)。
你可以做什么,是用POI来填充相应的原始数据的辅助表和使用VBA动态生成下拉菜单,将允许挑选从列表中值。