guanquan.wang
guanquan.wang
低版本的dom4j有XXXE漏洞,能够在服务器远程执行命令,高版本createDefault添加了以下三个feature,线上服务的话最好还是使用高版本dom4j ``` reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); reader.setFeature("http://xml.org/sax/features/external-general-entities", false); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false); ```
可以考虑,但也需要有一个适配的基准版本,太古老的版本确实没有办法支持,你这边可以先在本地做一下适配,除了上面提到的两点兼容性外是否还有其它兼容点
拉取 fix#448 分支本地打包来测试一下是否做好兼容,这个分支兼容dom4j 1.6.x 及以上的版本
v0.5.25已兼容dom4j 1.6.x
看上去像是没有拿到边框颜色,如果可以的话将模板发我一份 临时的你可以使用下面代码来避免NPE,使用自定义TemplateSheet并预判断边框颜色是否为NULL,如果为NULL则取消边框,可能会出现与预期样式不一致的情况 ``` public class MyTemplateSheet extends TemplateSheet { @Override protected int init() throws IOException { int r = super.init(); // 使用反射拿到所有Border并判断颜色是否为NULL Styles styles = workbook.getStyles(); for (Integer xf :...
> 上面的输出的点问题,应该是"Top 3 Man's Marathon"里的单号会转成“&aops” 原始文件里有就是Top 3 Man&apos ;s Marathon,读取的时候没有进行转义处理,目前读取的时候仅对'','&',' ','"'这5个字符进行了转义处理,可以使用下面代码临时处理,完整代码如下,直接复制可用(不要使用上面回复的代码) ``` public class MyTemplateSheet extends TemplateSheet { public MyTemplateSheet(Path templatePath) { super(templatePath); } @Override protected int init() throws IOException...
读的话目前只解析了Numfmt,其它样式未解析,后续会补上请持续关注本项目了解最新进度
1. 首先在ExcelReader#init方法大约570有一段Styles.load(s);代码初始化加载样式文件 2. 解析Cell的时候样式保存在org.ttzero.excel.reader.Cell对象的xf属性中,xf为style index并不是style 3. 在Row对象中需要增加public int getStyle(){ }方法,调用Styles#getStyleByIndex方法使用第2步的style index换取style 4. 然后就可以Styles#getNumFmt, Styles#getFill, Styles#getFont, Styles#getBorder 等方法获取具体的样式了 有兴趣的话可以尝试实现xlsx格式的样式解析
写法是正确的,但是基建好像不对,并没有拿到样式,晚点我尝试下