guanquan.wang
guanquan.wang
不好意思可能误导你了,因为Styles.load(s);并没有装载到styleIndex,所以styles.getStyleByIndex(cell.xf)返回的是-1,无法拿到样式,需要实现Styles#load方法才可以的
我稍后推一个分支获取numfmts
int style = styles.of(cell.xf); NumFmt numFmt= styles.getNumFmt(style); 这样写就可以了
你理解的很正确,这个样式就是全部的样式,只是现在只有numfmt才会放进map。 但是这样样式并不能用于复制,样式需要先addNumFmt进目标styles才会生效,而这个值大概率和原值不同,换句话说你不能直接在目标styles上使用of方法添加新样式
需要完全解析才可以的,当前虽然可以拿到完全的样式值但是各个主体(字体,边框,填充,和格式化)并没有解析,通过当前的style只能得到水平/垂直对其,是否折行。 当然如果目标和原有着相同样式是可以通过of方法复制的,我说的是整个styles.xml完全一样,比如模版
今天网络访问不了github,我的建议是如果是模版的话优先使用easyexcel,它有完整的功能,eec有计划支持模版但短时间还无法发布,部分对内存和性能要求的功能可以继续使用eec
fix#312分支增增加对样式的解析但并未经过完全测试,你可以fork本项目并切到fix#312分支进行BUG修改,欢迎提交PR。
你可以clone本项目并切到fix#312分支,该分支已实现获取单元格样式(row#getStyle ),可以install到本地使用 可以使用如下代码获取单元格样式 ``` reader.sheet(0).reset().dataRows().forEach(row -> { Cell cell = row.getCell(3); int style = row.getCellStyle(cell); NumFmt numFmt = row.getStyles().getNumFmt(style); println(numFmt); Font font = row.getStyles().getFont(style); println(font); Fill fill = row.getStyles().getFill(style); println(fill);...
如果只是简单字段替换的话可以参照TemplateTest测试类,只是目前还不支持表格,可自行扩展实现 ``` @Test public void testTemplate() throws IOException { try (InputStream fis = Files.newInputStream(testResourceRoot().resolve("template.xlsx"))) { // Map data Map map = new HashMap(); map.put("name", "guanquan.wang"); map.put("score", 90); map.put("date", "2019-05-05"); map.put("desc",...
可以加我微信聊吧,听你描述好像并不太难的样子,如果没有敏感信息的话可以将样本和预期的效果发邮箱我详细看下,邮箱地址点我头像查看