POI创建2007格式Excel的批注时内容是空的
我用POI创建2007格式的EXCEL,写入批注,打开后能看到单元格内容和批注的标识,但是批注内容为空,不知道为什么,求高人指点。
代码如下(POI版本3.8~3.10都能运行):
package javatest; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFClientAnchor; import org.apache.poi.xssf.usermodel.XSSFComment; import org.apache.poi.xssf.usermodel.XSSFDrawing; import org.apache.poi.xssf.usermodel.XSSFRichTextString; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class PoiWriter { public static void main(String[] args) throws IOException { // 创建工作簿对象 XSSFWorkbook wb = new XSSFWorkbook(); // 创建工作表对象 XSSFSheet sheet = wb.createSheet("我的工作表"); // 创建绘图对象 XSSFDrawing p = sheet.createDrawingPatriarch(); // 创建单元格对象,批注插入到4行,1列,B5单元格 XSSFCell cell = sheet.createRow(4).createCell(1); // 插入单元格内容 cell.setCellValue(new XSSFRichTextString("批注")); // 获取批注对象 // (int dx1, int dy1, int dx2, int dy2, short col1, int row1, short // col2, int row2) // 前四个参数是坐标点,后四个参数是编辑和显示批注时的大小. XSSFComment comment = p.createCellComment(new XSSFClientAnchor(0, 0, 0, 0, (short) 3, 3, (short) 5, 6)); // 输入批注信息 comment.setString(new XSSFRichTextString("这是批注内容!")); // 添加作者,选中B5单元格,看状态栏 comment.setAuthor("toad"); // 将批注添加到单元格对象中 cell.setCellComment(comment); // 创建输出流 FileOutputStream out = new FileOutputStream("d:/writerPostil.xlsx"); wb.write(out); // 关闭流对象 out.close(); } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题已经解决,这段代码生成的Excel在Office 2007及以上版本中是正常的,只是在WPS中批注无法显示出来。解决办法是为批注内容添加字体设置,代码如下: