-
谁使用过POI3.8 设置EXCEL2007的数据有效性5
谁使用过POI3.8 设置EXCEL2007的数据有效性
问题补充:hudingchen 写道有问题吗? 我写个例子,poi3.8,excel2007好用public static void main(String[] args) { FileOutputStream out = null; try { // excel对象 HSSFWorkbook wb = new HSSFWorkbook(); // sheet对象 HSSFSheet sheet = wb.createSheet("sheet1"); // 输出excel对象 out = new FileOutputStream("C://aaa.xls"); // 取得规则 HSSFDataValidation validate = PoiTest.setValidate((short) 1, (short) 1, (short) 1, (short) 1); // 设定规则 sheet.addValidationData(validate); // 输出excel wb.write(out); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (out != null) { try { out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } public static HSSFDataValidation setValidate(short beginRow, short beginCol, short endRow, short endCol) { // 创建一个规则:1-100的数字 DVConstraint constraint = DVConstraint.createNumericConstraint( DVConstraint.ValidationType.INTEGER, DVConstraint.OperatorType.BETWEEN, "1", "100"); // 设定在哪个单元格生效 CellRangeAddressList regions = new CellRangeAddressList(beginRow, beginCol, endRow, endCol); // 创建规则对象 HSSFDataValidation ret = new HSSFDataValidation(regions, constraint); return ret; }
你这个生成的EXCEL格式是2003的,我在生成EXCEL2007的时候,在实例化XSSFDataValidation 时候,不知道怎么写了,你以前弄好2007格式的吗,能给我一个例子吗,谢谢2011年5月14日 14:22
2个答案 按时间排序 按投票排序
-
我之前的代码,在2007下是好用的,不过没有使用XSSF,我试着用XSSF写了一下,但是生成的excel文件的数据有效性没有加上,不过代码我觉得没有问题的,先看下
public static void main(String[] args) { FileOutputStream out = null; try { // excel对象 XSSFWorkbook wb = new XSSFWorkbook(); // sheet对象 XSSFSheet sheet = wb.createSheet("sheet1"); // 输出excel对象 out = new FileOutputStream("C://aaa1.xls"); // 取得规则 DataValidation validate = PoiTest.setValidate(sheet, (short) 1, (short) 1, (short) 1, (short) 1); // 设定规则 sheet.addValidationData(validate); wb.write(out); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (out != null) { try { out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } public static DataValidation setValidate(XSSFSheet sheet, short beginRow, short beginCol, short endRow, short endCol) { XSSFDataValidationHelper helper = new XSSFDataValidationHelper(sheet); DataValidationConstraint constraint = helper.createNumericConstraint( ValidationType.INTEGER, OperatorType.BETWEEN, "1", "100"); CellRangeAddressList regions = new CellRangeAddressList(beginRow, beginCol, endRow, endCol); return helper.createValidation(constraint, regions); }
后来我查了下文档,http://poi.apache.org/spreadsheet/quick-guide.html#Validation
其中有这么一句Currently - as of version 3.5 - the XSSF stream does not support data validations and neither it nor the HSSF stream allow data validations to be recovered from sheets
也就是说3.5中XSSF是不支持validations的,我怀疑3.8也还不支持,估计以后会修正吧,希望对你有帮助。2011年5月16日 21:57
-
有问题吗? 我写个例子,poi3.8,excel2007好用
public static void main(String[] args) { FileOutputStream out = null; try { // excel对象 HSSFWorkbook wb = new HSSFWorkbook(); // sheet对象 HSSFSheet sheet = wb.createSheet("sheet1"); // 输出excel对象 out = new FileOutputStream("C://aaa.xls"); // 取得规则 HSSFDataValidation validate = PoiTest.setValidate((short) 1, (short) 1, (short) 1, (short) 1); // 设定规则 sheet.addValidationData(validate); // 输出excel wb.write(out); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (out != null) { try { out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } public static HSSFDataValidation setValidate(short beginRow, short beginCol, short endRow, short endCol) { // 创建一个规则:1-100的数字 DVConstraint constraint = DVConstraint.createNumericConstraint( DVConstraint.ValidationType.INTEGER, DVConstraint.OperatorType.BETWEEN, "1", "100"); // 设定在哪个单元格生效 CellRangeAddressList regions = new CellRangeAddressList(beginRow, beginCol, endRow, endCol); // 创建规则对象 HSSFDataValidation ret = new HSSFDataValidation(regions, constraint); return ret; }
2011年5月14日 16:09
相关推荐
在给定的标题“Excel操作工具poi3.8”中,我们关注的是POI 3.8版本,这是一个适用于处理Excel文件的强大工具。在这个版本中,用户可以进行数据读取、写入、格式化以及复杂的公式计算等操作。 首先,我们需要理解...
在POI 3.8 Beta5这个版本中,开发者可以利用它来处理大数据量的Excel文件,这在数据处理、报告生成或数据分析场景中非常有用。 Apache POI库提供了HSSF(Horrible Spreadsheet Format)和XSSF(XML Spreadsheet ...
在"poi-3.8.zip"这个压缩包中,我们主要关注的是它对Excel的支持,特别是如何利用POI库来实现Excel数据的有效性和自定义下拉列表功能。 在Java开发中,Apache POI提供了一套API,使得程序员可以在不依赖Microsoft ...
标题中的“POI实现的基于动态模板的EXCEL数据导出”是指利用Apache POI库来创建一个可以动态填充数据的Excel模板,从而实现大量数据的高效导出。Apache POI是一个开源项目,它允许Java开发者读写Microsoft Office...
标题中的"POI3.8以及3.9的API"指的是这两个版本的API接口文档,是开发者理解和使用POI库的关键资源。API文档详尽地列出了各种类、方法和接口,使得开发者能够有效地利用POI进行文件操作。 在POI 3.8和3.9中,主要...
标题提到的"poi3.8,3.9,3.10jar包"分别代表了三个不同版本的Apache POI库,每个版本都有其特定的改进和新特性。 在Excel处理方面,Apache POI相比于早期的jxl库,提供了更多的功能和更好的性能。以下是Apache POI在...
在本案例中,"poi3.8 jar包"指的是Apache POI库的3.8版本,这是一个Java库,允许开发人员在Java应用程序中读取、写入和修改Microsoft Office格式的文件。该版本发布于2012年,是POI项目的一个稳定版本,包含了处理...
Apache POI 是一个著名的开放源码函式库,主要用于处理...特别是在大数据量处理方面,SXSSFWorkbook的引入极大地提升了性能和可扩展性,使得POI成为处理Excel文件的理想选择,尤其适用于需要处理大量数据的业务场景。
1. **Excel文件处理**:Apache POI 提供了HSSF(Horrible Spreadsheet Format)API来处理旧版的Excel 97-2003格式(.xls),以及XSSF(XML Spreadsheet Format)API来处理Excel 2007及以后版本的.xlsx格式。...
总之,Apache POI 3.8 中的SXSSFWorkbook是处理大数据量Excel文件的理想选择,它通过流式处理和磁盘缓存策略,有效地解决了内存限制问题,确保了大规模数据处理的可行性。在互联网和计算机科学(cs)领域,这样的...
在给定的压缩包"poi-3.17-3.8-3.9-3.10.zip"中,包含了Apache POI的多个版本,从3.17到3.8,这些版本可用于Java Web项目中的数据导入和导出功能。 **Apache POI主要知识点:** 1. **Excel处理**: - **HSSF**:...
总之,Apache POI是Java开发中处理Office文档的强大工具,无论是在3.17还是3.8版本,都能帮助开发者轻松地完成Excel数据的导入导出任务。根据项目的具体需求和资源限制,选择合适版本的Apache POI库是至关重要的。
4. **Apache POI**:Apache POI是一个用于读写Microsoft Office格式文件的Java库,`POI3.7+3.8.jar`可能包含了3.7和3.8两个版本的合并,支持对Excel、Word、PowerPoint等多种文件的操作。在处理大量数据时,例如读取...
"POI3.8组件研究(七)--基于XSSF and SAX (Event API)事件的解析" 提到了Apache POI库的一个高级话题,主要关注的是如何使用XSSF(XML Spreadsheet Formatting Streams)和SAX(Simple API for XML)的Event API来...
标题“解析excel使用的poi包”和描述“解析excel所需要的poi包”都指向了使用Apache POI进行Excel文件操作的主题。 Apache POI包含多个模块,每个模块对应不同的Office文档类型。在提供的压缩包子文件中,我们看到...
在 poi-examples-3.8-beta5-sources.jar 中,你可以找到许多例子,这些例子涵盖了如何使用POI进行Excel操作的基本用法,包括但不限于以下几点: 1. **创建工作簿**:POI提供了Workbook接口,用于创建一个新的Excel...
在本文中,我们将深入探讨Apache POI 3.8版本中的Event API,特别是针对HSSF(Horizontally Sparse File Format)的事件解析。Apache POI是一个流行的Java库,它允许开发人员处理Microsoft Office格式的文件,如...
例如,如果你需要将数据库中的数据导出为Excel,可以利用POI的批处理特性,一次性写入多个单元格,从而提高性能。同时,它也支持读取Excel文件,进行数据分析或者数据导入到应用程序。 对于开发过程中可能遇到的...
SXSSFWorkbook是在Apache POI 3.8版本及以上开始支持的,它是XSSFWorkbook的一个子类,用于处理Excel 2007以上的.xlsx格式。与XSSFWorkbook不同,SXSSFWorkbook通过在硬盘上创建临时文件来缓解内存压力。当数据行数...