java poi框架导出excel如何插入特殊字符(复选框勾选) |
您所在的位置:网站首页 › excel怎么设置勾选框 › java poi框架导出excel如何插入特殊字符(复选框勾选) |
java poi框架导出excel如何插入特殊字符(复选框勾选)
背景:
google了好久java导出excel如何导出复选框勾选状态,没有找到可行的结果,实际操作了一下,要不就是导不出,要不就是导出之后不正确。 先看看要导出的excel格式吧 就是一个单元格中包含了中文和方框的符号,根据后台结果,如果是true,需要在方框内打勾。 正常手动在excel中插入复选框勾选是如何操作的1.选择 2.找到Wingdings 2字体 就可以手动插入一个check的复选框了 poi框架导出如何设置1.要注意每个字符其实就是一个Unicode编码,checkbox在代码中表示如下:\u0052 2.正常字体的\u0052编码对应的字符是R 3.修改单元格内字体,如果修改的过长,中文字符就会变乱码,如果修改的过短,就不能正常展示我们插入的特殊符号 4.我曾经尝试设置cell的font,但是发现会影响其它单元格的font,并且cell中包含的中文字符也会变成乱码,所以就放弃设置cell的font了 代码如下: /** * 该方法是处理checkbox的 */ public RichTextString process(Cell cell, Object input, Font font) { RichTextString richTextString; // 设置字体名称 font.setFontName("Wingdings 2"); if (Objects.equals(input, true)) { richTextString = new HSSFRichTextString("是\u0052 否\u25A1"); richTextString.applyFont(1, 2, font); } else { richTextString = new HSSFRichTextString("是\u25A1 否\u0052"); richTextString.applyFont(4, 5, font); } return richTextString; } // font是通过workbook创建出来的,是不能new的 Font font = workbook.createFont(); // 此处省略自己封装的框架,value值就是上面方法返回的RichTextString cell.setCellValue((RichTextString) value);导出结果如图: 至于纳税人识别号的方框内填数字,到现在也没好的方法来解决,手动插入还不会,更别提代码处理了,如果有人有更好的方案可以提出来,一起进步。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |