poi关于为excle文件添加批注被覆盖问题_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > poi关于为excle文件添加批注被覆盖问题

poi关于为excle文件添加批注被覆盖问题

 2016/9/8 5:32:24  yuzhouchangwan  程序员俱乐部  我要评论(0)
  • 摘要:POI批注添加注意事项在使用POI上传Excel时,对上传的Excel内容进行校验时,错误信息背景加红,并且加批注/***功能:对校验的excel表的出错的地方背景变红
  • 标签:文件 问题
POI 批注添加 注意事项

在使用POI上传Excel时,对上传的Excel内容进行校验时,错误信息背景加红,并且加批注
/**
* 功能:对校验的excel表的出错的地方背景变红,并且添加备注
*  @param hssfWorkbook
*  @param sheet所操作的excel表
*  @param cell所校验的单元格
*  @param msg准备添加的批注信息
*  @param r 当前所操作的行
* @param  allrow 是这个sheet表一共有几行
*  @param 保存路径
*/
private void  addAnnotateForExcel(HSSFWorkbook hssfWorkbook,HSSFSheet sheet,HSSFCell cell,HSSFPatriarch p,String msg,String savePath,int r,int allrow){
//为单元格添加批注
HSSFComment comment=
p.createComment(newHSSFClientAnchor(0,0,0,0,(short)3,3,(short)5,6));
comment.setString(new HSSFRichTextString(msg));
cell.setCellComment(comment);
//设置背景颜色
HSSFCellStyle style=hssfWorkbook.createCellStyle();
style.setFillPattern(HSSFCellStyle.FINE_DOTS );
        //设置前景色
style.setFillForegroundColor(new HSSFColor.RED().getIndex());
        //设置背景色
     style.setFillBackgroundColor(new HSSFColor.RED().getIndex());
//给单元格添加风格
cell.setCellStyle(style);
if (r==(allrow-1)) {
FileOutputStream stream =null;
try {
stream = new FileOutputStream(savePath);
hssfWorkbook.write(stream);
} catch (Exception e) {
e.printStackTrace();
}finally{
if (stream!=null) {
try {
stream.close();
} catch (IOException e) {
e.printStackTrace();
}}}}
}

注:
1.一张sheet表,只能创建一个绘画对象HSSFPatriarch,如果一张表创建多个绘画对象HSSFPatriarch,在添加批注时,会出现错误,会导致只有最后一行添加了批注
2. HSSFWorkbook  这种创建的工作表,只能对第一张工作表操作
3.在输出过程中,不能添加一次输出一次,必须要等到对最后一行数据校验完毕后才能输出,否则会覆盖点之前的批注或者只能在第一个上添加批注
4,前景色和背景色要配合着使用,否则无法实现背景加色的效果
发表评论
用户名: 匿名