2011-08-04 51 views
2

添加在下拉的Excel列表值我有这样的代码:错误使用Apache POI

CellRangeAddressList addressListTax = new CellRangeAddressList(rowCount, rowCount, labelRowCnt, labelRowCnt); 

DVConstraint dvConstraintTax = DVConstraint.createExplicitListConstraint(new String[] { 

    "I0-Input Tax 0%", "I1-Input Tax 10% ", "I2-Input Tax 12%","IE-Input Tax Exempt", 
    "J0-0% Input Tax,China ","J1-17% Input Tax,China ","J2-13% Input Tax,China ", 
    "J3-6% Input Tax,China","J4-4% Input Tax,China ","J5-3% Input Tax,China", 
    "J6-7% Input Tax,China", "L1-5% Luxury Tax,China ", "O0-Zero-rated Sales ", 
    "O1-Output Tax 10% ","O2-Output Tax 12% ","OE-Output Tax Exempt ", 
    "P0-Purchase Tax 0% ","P1-Tax on Purchase 0%","P2-Tax on Purchases 5% ", 
    "P3-Tax on Purchases 7%", "P4-Out of Scope purchase 0% ", "P5-Imported Purchase 0% ", 
    "S0-Exempted Tax on Sales ","S1-Tax on Sales 0% ","S2-Tax on Sales 5% ", 
    "S3-7% GST ","S3-Tax on Sales 7%","X0-0% Output Tax,China ","X0-China Output Tax 0%", 
    "X1-17% Output Tax,China","X2-13% Output Tax,China" 
}); 

HSSFDataValidation dataValidationTax = new HSSFDataValidation(addressListTax,dvConstraintTax); 

dataValidationTax.setSuppressDropDownArrow(false); 
sheet.addValidationData(dataValidationTax); 

此掷错误在Linux中:

java.lang.IllegalArgumentException: String literals in formulas can't be bigger than 255 characters ASCII 
11/08/03 13:36:58 java.lang.IllegalArgumentException: String literals in formulas can't be bigger than 255 characters ASCII 
11/08/03 13:36:58 at myorg.apache.poi.hssf.record.formula.StringPtg.<init>(StringPtg.java:65) 
11/08/03 13:36:58 at myorg.apache.poi.hssf.usermodel.DVConstraint.createListFormula(DVConstraint.java:413) 
11/08/03 13:36:58 at myorg.apache.poi.hssf.usermodel.DVConstraint.createFormulas(DVConstraint.java:386) 
11/08/03 13:36:58 at myorg.apache.poi.hssf.usermodel.HSSFDataValidation.createDVRecord(HSSFDataValidation.java:197) 
11/08/03 13:36:58 at myorg.apache.poi.hssf.usermodel.HSSFSheet.addValidationData(HSSFSheet.java:378) 
11/08/03 13:36:58 at com.DemoPxExcel.doAction(DemoPxExcel.java:217) 
11/08/03 13:36:58 at com.ListRFQ.doAction(ListRFQ.java:198) 

回答

2

我会假设你实际上是寻找你的问题的解决方案,而不是明显的陈述给你...

我想通了,其解决方法是受限的项目列表添加到二级片,保护工作表,然后参考范围拉项目:请参阅“从电子表格单元格创建数据验证”的文档http://poi.apache.org/spreadsheet/quick-guide.html

我做了这个解决方案,将我的列表添加到辅助表单,然后保护表单。不知道在下拉尺寸/项目的Excel verions的限制,但它与列表大小/内容与你类似的工作。

工作的罚款与poi3.7。

+0

Excel不允许到referencce另一片数据验证! –