guanquan.wang

Results 227 comments of guanquan.wang

可以考虑这种场景还是比较多的,年底开发任务比较重,短期内不会实现

这种问题一般都是兼容问题,如果没有敏感信息可以将文件发我一下

帮忙再做一个三级联动的示例文件

扩展起来比较麻烦,也没有找到太好的办法来简化设置,多级联动需要有上下级关系,每一级还要设置单元格范围,下面给一个示例代码,支持3级联动,理论是没有限制几级,如果有超过3级联动需求将new UnsupportedOperationException("最多支持3级联动")异常拿掉就可以 整体思路如下 1. 自定义RelationListValidation并可以使用addSubRelation添加关联 2. 自定义MyXMLWorkbookWriter并支持名称管理器 3. 自定义MyXMLWorksheetWriter并解析RelationListValidation类型,并将下拉数据添写到新worksheet追加到末尾并设置隐藏 由于代码比较长,每个自定义类我都独立回复

``` // 自定义ListValidation,支持上下级ListValidation public class RelationListValidation extends ListValidation { public List subs; public String indirect; public List sqrefs; public RelationListValidation addSubRelation(Map subRelation, Dimension sqref) { if (this.subs == null) {...

``` // 自定义MyXMLWorkbookWriter增加名称管理器节点 public class MyXMLWorkbookWriter extends XMLWorkbookWriter { @Override protected void writeWorkbook(Path root) throws IOException { DocumentFactory factory = DocumentFactory.getInstance(); //use the factory to create a root element Element...

``` // 自定义XMLWorksheetWriter并预解析RelationListValidation public class MyXMLWorksheetWriter extends XMLWorksheetWriter { @Override protected void afterSheetData() throws IOException { // 预处理 @SuppressWarnings("unchecked") List validations = (List) sheet.getExtPropValue(Const.ExtendPropertyKey.DATA_VALIDATION); if (validations != null && !validations.isEmpty())...

测试代码 ``` @Test public void testRelationListValidation() throws IOException { List validations = new ArrayList(); validations.add(new RelationListValidation().in(Arrays.asList("江苏省", "山东省", "湖南省"), Dimension.of("A2:A100")) .addSubRelation(new LinkedHashMap(){{ put("江苏省", Arrays.asList("南京市", "苏州市", "扬州市")); put("山东省", Arrays.asList("青岛市", "德州市", "烟台市")); put("湖南省",...

代码比较乱测试可用,如果在源码上修改则不需要这么复杂,关注后续迭代吧

v0.5.27 已支持级联下拉,同时TemplateSheet模板工作表也支持复制级联下拉,[WIKI帮助文档](https://github.com/wangguanquan/eec/wiki/D-%E6%95%B0%E6%8D%AE%E9%AA%8C%E8%AF%81)