头段时间要做个excel导出。。其中一列要求做下拉列表的样子。
目前2003和2007的下拉表其实只是到32766个,范围再高也没有用了。
方法需要sheet,要做下拉的单元格,以及打算放置数据的单元格,还有数据了。
返回的是截止点的下个单元格的位置,可以为下个单元格放置数据。
另外,这真是个蛋疼的东西。。jxl不支持2007。。poi支持而且做这个也简单,但是这个项目一直是jxl。。哎。。。
/**
* @param sheet
* @param target 要设置数据验证性的单元格位置
* @param current 要存放验证性数据的单元格位置
* @param step
* @param data
* @return
*/
private static int[] buildDataValidationCell(WritableSheet sheet, int[] target, int[] current,
List<String> data) {
try {
if (data.size() == 0)
return current;
List<String> strings = new ArrayList<String>();
for (String d : data) {
if (d!= null&& !"".equals(d.trim()))
strings.add(d);
}
if(strings.size()>65535)
throw new RuntimeException("excel2003单列上限,数据验证只能使用单列或单行");
//excel2003上限是65535,所以隐藏的行数超过5w就换另外一列,
//列上限是255。暂时不考虑行列都到上限的情况
if (current[1] > 50000 ||(current[1] > 50000 && strings.size()>15535)) {
current[0] = current[0] + 1;
current[1] = 0;
}
//构建下拉数据范围
buildDataValidationRange(sheet, target, current, strings);
//设置隐藏
CellView cv = new CellView();
cv.setHidden(true);
sheet.setColumnView(current[0], cv);
//填充数据
for (String s : strings) {
Label b = new Label(current[0], current[1], s);
sheet.addCell(b);
current[1] += 1;
}
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
return current;
}
//构建下拉数据范围
private static void buildDataValidationRange(WritableSheet sheet,
int[] target, int[] current, List<String> strings)
throws WriteException, RowsExceededException {
WritableCellFeatures wcf = null;
Label targetCell = new Label(target[0], target[1], strings.get(0));//数据验证初始cell
wcf = new WritableCellFeatures();
StringBuffer buff = new StringBuffer();//数据验证范围
CellReferenceHelper.getCellReference(current[0] , true,current[1], true, buff);//起点
buff.append(":");
CellReferenceHelper.getCellReference(current[0] , true,current[1] + strings.size() - 1, true, buff);//终点
wcf.setDataValidationRange(buff.toString());//设置数据验证性
targetCell.setCellFeatures(wcf);
sheet.addCell(targetCell);
}
分享到:
相关推荐
Java使用JXL库生成Excel文件是一项常见的任务,特别是在数据处理、报表生成或导出时。JXL是一个开源的Java库,允许我们读取、写入和修改Excel文件。以下将详细讲解如何使用JXL库来生成Excel文件。 首先,我们需要在...
"jxl模版生成excel" 指的是使用JExcelAPI(简称jxl)这个Java库来创建基于模板的Excel文件。JExcelAPI是一个开源项目,允许程序开发者读写Microsoft Excel文件,它支持从Java数据结构直接导出到Excel格式,同时也可...
使用jxl生成excel的通用方法,参数List<?>数据,LinkedHashMap,String>实体类属性名和中文列名的键值对
下面是一个更复杂的示例代码,展示了如何使用jxl创建带有不同数据样式的Excel文件,包括下拉框: ```java import java.io.FileOutputStream; import java.io.OutputStream; import java.text.SimpleDateFormat; ...
自己封装的方法,调用 XlHelper.getXl(List<?> voList , Object head , OutputStream ops)方法,直接返回需要的excel,而不需要再去写jxl的方法。第一个参数voList 是excel里的内容,第二个参数head是excel表头。第...
本资源提供了一个利用jxl库实现Java程序中生成Excel表格的解决方案。jxl是一个广泛使用的开源Java库,它允许开发者读取、写入和修改Microsoft Excel文件。 首先,我们来详细了解一下jxl库。jxl库支持多种Excel操作...
在Java编程环境中,生成Excel报表是一项常见的任务,尤其在数据处理和数据分析中。Apache POI 和 JExcelAPI(JXL)是两个广泛使用的库,分别用于处理Microsoft Office的POI格式(包括Excel)和Java环境中的Excel文件...
用jxl生成EXCEL表格,一个非常简单易懂的写法。
这篇博客“利用Jxl生成excel文件”提供了关于如何使用Jxl库创建Excel文档的指导。 首先,Jxl库允许开发者在Java程序中直接操作Excel格式的数据,而无需依赖Microsoft Office套件。它支持多种Excel功能,如单元格...
jxl是对excel强有力的操纵工具,它具有丰富的API可以满足对excel的各种开发需要。
jxl对下拉列表的读写操作以及相应的修改功能
这篇博客“使用JXL生成Excel实例详解”将深入探讨如何利用JXL库来创建Excel文件。 首先,要开始使用JXL,你需要在项目中添加JXL的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml ...
总的来说,结合Struts2和JXL,开发者可以方便地在Java web应用中实现Excel文件的生成与导出功能,提供给用户高效的数据导出体验。通过深入理解和实践,可以进一步定制化Excel的样式和内容,满足各种业务需求。
在Java开发中,生成和处理Excel文件是一...总的来说,通过JXL库,Java开发者可以方便地生成和打印Excel报表,满足各种数据展示和导出的需求。尽管JXL有一些限制,但其简单易用的API使得它成为小型项目的一个不错选择。
例子如下: Object是一个对象实体类,如Studnet.java. List 是一个对象集合,后面的是输出路径. WriteExcel rw=new WriteExcel(); rw.writeExcel(new Object(), List, "f:/a.xls","库存表");
jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程 jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程
在IT行业中,生成Excel报表是常见的数据展示和分析任务,而JXL库为Java开发者提供了一个强大且便捷的解决方案。JXL,全称Java Excel API,是一个开源的Java库,专为读取、写入以及修改Excel文件设计。它允许程序员在...
`jxl`库是一个流行的Java库,它允许开发者读取、写入和修改Excel文件。本教程将详细介绍如何使用`jxl`库在导出Excel时添加水印,以及涉及的核心类`WritableWorkbook`、`WritableSheet`和`WritableCellFormat`。 `...
Java通过JXL库生成Excel文档是一项常见的任务,尤其在数据导出、报表生成等领域非常实用。JXL是一个Java API,允许我们读写Microsoft Excel文件,而无需依赖Microsoft Office。在这个过程中,我们可以创建新的工作簿...
在Java编程环境中,处理Excel文件是一项常见的任务,特别是在数据导入导出、报表生成等领域。`jxl`库是一个广泛使用的开源库,它允许开发者用Java读取、写入和修改Excel文件。在这个特定的场景中,我们将探讨如何...