POI导出Word插入复选框

POI功能比较强大,但是有些不常用功能比如插入特殊符号,不知道API怎么调用


Word里要插入复选框,首先想到的是POI有没有提供现成的API,搜了一番,貌似都说不直接支持

http://stackoverflow.com/questions/9732832/creating-word-document-from-a-template-using-java

也有说用图片替换的

一想到用POI操作图片比较复杂,就不想用了

于是想了一个大招,未选中的复选框和选中的复选框在Word里直接操作都是插入特殊符号,是不是POI导出也可以使用文字符号呢?

看了下搜狗输入法的特殊符号里还真有未选中的复选框“□”和选中的复选框“☑”,不过未选中的复选框在Word里比选中的复选框显得小:


于是直接用汉字口替换,看看效果如何:


还不错吧


还搜到另外一个未选中复选框的特殊字符

http://zuoye.baidu.com/question/0d5785ba6bc14781a0f3b25c95d6bdd8.html?qq-pf-to=pcqq.c2c


有些候,复杂的问题换一种方式,也许就会变得简单~


POI 中,可以通过创建单元格样式和设置数据验证来实现在 Excel 中添加复选框。具体步骤如下: 1. 创建工作簿和工作表 ``` Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("Sheet1"); ``` 2. 创建单元格样式并设置为复选框样式 ``` CellStyle checkboxStyle = workbook.createCellStyle(); checkboxStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex()); checkboxStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); checkboxStyle.setBorderBottom(BorderStyle.THIN); checkboxStyle.setBorderTop(BorderStyle.THIN); checkboxStyle.setBorderLeft(BorderStyle.THIN); checkboxStyle.setBorderRight(BorderStyle.THIN); // 设置为复选框样式 checkboxStyle.setLocked(false); checkboxStyle.setIndention((short) 1); checkboxStyle.setAlignment(HorizontalAlignment.LEFT); ``` 3. 在需要添加复选框的单元格中设置该样式 ``` Row row = sheet.createRow(0); Cell cell = row.createCell(0); // 设置单元格样式为复选框样式 cell.setCellStyle(checkboxStyle); ``` 4. 设置数据验证 ``` DataValidationHelper validationHelper = sheet.getDataValidationHelper(); DataValidationConstraint constraint = validationHelper.createExplicitListConstraint(new String[]{"true","false"}); CellRangeAddressList rangeList = new CellRangeAddressList(0, 0, 0, 0); // 设置数据验证为复选框 DataValidation validation = validationHelper.createValidation(constraint, rangeList); validation.setShowErrorBox(true); sheet.addValidationData(validation); ``` 通过以上步骤,就可以在 Excel 中添加复选框了。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值