子孑 2018-07-25 09:06 采纳率: 66.7%
浏览 1587
已采纳

获取第一个excel的单元格的背景(前景)色设置在第二个excel的单元格上

场景:

获取第一个excel的单元格的背景(前景)色设置在第二个excel的单元格上。

在调用第一个excel对象的getFillForegroundColor()获取前景色索引后,调用第二个excel对象的setFillForegroundColor()写入获取到的背景色后,发现写出的第二个excel颜色混乱,发现getFillForegroundColor返回的值都是64。(ps:查看官网api发现调用getFillForegroundColor()方法默认是返回64。)

问题:

workbook在获取excel的时候没有把颜色覆盖到FillForegroundColor上么?为什么获取的还是默认值?

请问有什么方法可以更好的获取一个excel中单元格的颜色后在另一个excel中重现这个颜色呢?
ps:poi3.9,xls与xlsx两种文件都有

  • 写回答

1条回答 默认 最新

  • 剑城渔翁 2018-07-25 16:19
    关注

    以下是我的代码,我将重要的部分给你,你自己看一下,希望能解决到你的问题,其中有些是有其他地方调用传值过来的,自己注意一下,如果不明白的地方可以加我微信:huihui201819

    HSSFCell datacell = dataRow.createCell(j);//创建单元格
    HSSFCellStyle cellStlye = wb.createCellStyle();//创建样式
    //自动换行 上下居中
    cellStlye.setWrapText(true);// 设置自动换行
    cellStlye.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 创建一个居中格式
    cellStlye.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
    // 设置边框
    cellStlye.setBottomBorderColor(HSSFColor.BLACK.index);
    cellStlye.setBorderBottom(HSSFCellStyle.BORDER_THIN);
    cellStlye.setBorderLeft(HSSFCellStyle.BORDER_THIN);
    cellStlye.setBorderRight(HSSFCellStyle.BORDER_THIN);
    cellStlye.setBorderTop(HSSFCellStyle.BORDER_THIN);

    //设置背景
    if(row.getColor() != null) {
    int color = row.getColor();
    /*cellStlye.setFillPattern(HSSFCellStyle.BIG_SPOTS);
    cellStlye.setFillForegroundColor(HSSFColor.RED.index);
    cellStlye.setFillBackgroundColor(HSSFColor.LIGHT_BLUE.index); /
    cellStlye.setFillPattern((short)color); //使用传过来的颜色
    cellStlye.setFillForegroundColor((short)color);
    cellStlye.setFillBackgroundColor((short)color);
    }
    *
    ***********其中省略一些多余的代码***************
    datacell.setCellStyle(cellStlye);//将上面创建的样式填充到单元格中

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!