当前位置: 首页 > 知识库问答 >
问题:

如何在Grails excel-export/apache-POI插件中设置背景颜色?

井通
2023-03-14

我们正在使用Grails excel-export插件,它在引擎盖下使用apache-poi。

我们正在尝试设置单元格(或行)的背景颜色(以及稍后的字体)。

我们已经尝试过:

def rgb = [50,50,50] as byte[]
XSSFColor colour = new XSSFColor(rgb)
headers.eachWithIndex() {item, i ->
  xlsxExporter.putCellValue(row, i, item.value.toString())
  def style = xlsxExporter.getCellAt(row, i).getCellStyle()
  xlsxExporter.getCellAt(row, i).setCellStyle(style.setFillBackgroundColor(colour))
};

但一切都没有改变。我们尝试将setCellStyle放在plutCellValue之前,但这会导致空指针异常。

我们不能使用模板,因为我们正在开发一个插件,不幸的是,只有应用程序才能在WEB-INF中有可访问的文件,而不是插件。

--更新1

尝试了以下操作:

  def style = xlsxExporter.getCellAt(row, i).getCellStyle()
  style.setFillBackgroundColor(colour)
  style.setFillPattern(CellStyle.ALIGN_FILL)
  xlsxExporter.getCellAt(row, i).setCellStyle(style)

没有帮助。

--更新2

尝试使用模板xlsx。在模板中,我更改了整行以具有背景颜色。结果输出具有写入数据的所有单元格没有背景,其余单元格具有背景。即,如果您写入任何数据,它会覆盖模板样式,这与留档所说的相反。我将其作为插件网站的错误提出。

  // convert the headers into a list of strings for the exporter.
  headers = response.rows[0].keySet()
  List<String> headersList = []
  headers.eachWithIndex() { item, i ->
          headersList.add(item.value.toString())
  }

  // copy the raw row data into a list of lists for Exporter
  def exports = []
  response.rows.each {
         exports << it
  }

  xlsxExporter = new WebXlsxExporter(servletContext.getRealPath("/reporting/report_template.xlsx")).with {
         fillHeader(headersList)
         add(exports, headersList)
         save(outputStream)
  }

共有1个答案

严修德
2023-03-14

而不是:

style.setFillBackgroundColor(colour)

试试这个:

style.setFillForegroundColor(color)
style.setFillPattern(style.SOLID_FOREGROUND)

检查是否有帮助

 类似资料:
  • 问题内容: 一开始,我想说我是开发人员领域的新手。 我试图生成一个Excel工作表,其中包含带边框的Mutiplication表并设置背景颜色,但仅用于第一列和第一行。 这是一个正确的例子:正确的例子 我写了类似的东西,但是结果文件彩色单元格没有边框:(。 请向我解释如何同时设置背景颜色和边框。 问题答案: 更改 为 您可以如下设置边框: 这将根据需要为您提供黄色和边框

  • 我正在尝试为excel文件中的标题设置背景颜色,但得到的是黑色,单元格上没有可见的内容。我使用的是apache poi 4.1.0和poi-ooxml 4.1.0。 多谢了。

  • 本文向大家介绍如何在HTML中设置背景颜色?,包括了如何在HTML中设置背景颜色?的使用技巧和注意事项,需要的朋友参考一下 要在HTML中设置背景颜色,请使用style属性。style属性指定元素的内联样式。该属性与HTML <body>标记以及CSS属性background-color一起使用。HTML5不支持<body>标记的bgcolor属性,因此CSS样式用于添加背景色。HTML5中不推荐

  • 通过RGB值设置背景的颜色。 默认的颜色是 0x000000: // 颜色的参数可以是字符串 "#530000" 或者是十六进制数值 0x530000 controller.setBackgroundColor("#530000); //controller.setBackgroundColor(0x530000);

  • 问题内容: 当我尝试使用以下命令在Vim 中或直接在Vim中更改背景色时: …完全不影响我的背景。该选项也没有。但是,当我运行gvim时看起来还可以。 有没有一种方法可以在Vim中更改背景而不更改我的Konsole设置? 编辑 好的,guifg / guibg和ctermfg / ctermbg之间是有区别的。虽然GUI接受许多不同的颜色组合,但是cterm仅允许很少的标准颜色组合。 问题答案:

  • 我正在学习Flutter,我从最基本的开始。我没有使用MaterialApp。设置整个屏幕背景颜色的好方法是什么? 以下是我目前掌握的情况: 我的一些问题是: 设置背景色的基本方法是什么 谢谢你的帮助!