我正在尝试为excel文件中的标题设置背景颜色,但得到的是黑色,单元格上没有可见的内容。我使用的是apache poi 4.1.0和poi-ooxml 4.1.0。
XSSFWorkbook workbook = new XSSFWorkbook();
// Create a blank sheet
XSSFSheet sheet = workbook.createSheet("student Details");
XSSFCellStyle cellStyle = sheet.getWorkbook().createCellStyle();
cellStyle.setFillBackgroundColor(IndexedColors.GREY_50_PERCENT.index);
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
// This data needs to be written (Object[])
Map<String, Object[]> data = new TreeMap<String, Object[]>();
data.put("1", new Object[] { "ID", "NAME", "LASTNAME" });
data.put("2", new Object[] { 1, "Pankaj", "Kumar" });
data.put("3", new Object[] { 2, "Prakashni", "Yadav" });
data.put("4", new Object[] { 3, "Ayan", "Mondal" });
data.put("5", new Object[] { 4, "Virat", "kohli" });
// Iterate over data and write to sheet
Set<String> keyset = data.keySet();
int rownum = 0;
for (String key : keyset) {
// this creates a new row in the sheet
XSSFRow row = sheet.createRow(rownum++);
Object[] objArr = data.get(key);
int cellnum = 0;
for (Object obj : objArr) {
// this line creates a cell in the next column of that row
XSSFCell cell = row.createCell(cellnum++);
cell.setCellStyle(cellStyle);
if (obj instanceof String)
cell.setCellValue((String) obj);
else if (obj instanceof Integer)
cell.setCellValue((Integer) obj);
}
}
多谢了。
正如我的链接答案中所说:单元格内部使用模式填充。填充背景色是图案后面的颜色,填充前景色是图案的颜色。若要使用纯色填充单元格,需要使用fill foreground colorCellStyle.SetFillForegroundColor
和solid patternFillPatternType.solid_Foreground
。
我们再来一个完整的例子:
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.util.*;
public class CreateExcelCellFillColor2 {
public static void main(String[] args) throws Exception {
//Workbook workbook = new HSSFWorkbook();
Workbook workbook = new XSSFWorkbook();
// Create a blank sheet
Sheet sheet = workbook.createSheet("student Details");
// Create header CellStyle
Font headerFont = workbook.createFont();
headerFont.setColor(IndexedColors.WHITE.index);
CellStyle headerCellStyle = sheet.getWorkbook().createCellStyle();
// fill foreground color ...
headerCellStyle.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.index);
// and solid fill pattern produces solid grey cell fill
headerCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
headerCellStyle.setFont(headerFont);
// This data needs to be written (Object[])
Map<String, Object[]> data = new TreeMap<String, Object[]>();
data.put("1", new Object[]{ "ID", "NAME", "LASTNAME" });
data.put("2", new Object[]{ 1, "Pankaj", "Kumar" });
data.put("3", new Object[]{ 2, "Prakashni", "Yadav" });
data.put("4", new Object[]{ 3, "Ayan", "Mondal" });
data.put("5", new Object[]{ 4, "Virat", "kohli" });
// Iterate over data and write to sheet
Set<String> keyset = data.keySet();
int rownum = 0;
for (String key : keyset) {
// this creates a new row in the sheet
Row row = sheet.createRow(rownum++);
Object[] objArr = data.get(key);
int cellnum = 0;
for (Object obj : objArr) {
// this line creates a cell in the next column of that row
Cell cell = row.createCell(cellnum++);
// if rownum is 1 (first row was created before) then set header CellStyle
if (rownum == 1) cell.setCellStyle(headerCellStyle);
if (obj instanceof String)
cell.setCellValue((String)obj);
else if (obj instanceof Integer)
cell.setCellValue((Integer)obj);
}
}
for (int c = 0; c < 3; c++) {
sheet.autoSizeColumn(c);
}
FileOutputStream out = null;
if (workbook instanceof HSSFWorkbook) {
out = new FileOutputStream("CreateExcelCellFillColor2.xls");
} else if (workbook instanceof XSSFWorkbook) {
out = new FileOutputStream("CreateExcelCellFillColor2.xlsx");
}
workbook.write(out);
out.close();
workbook.close();
}
}
这正是您正在做的,只是我的代码只对第一行使用标题单元格样式。它使用白色字体,因为50%灰色的黑色字体不是很好的可读性。
再次:灰色填充前景色和实心填充图案产生实心灰色单元格填充。
结果:
问题内容: 虽然默认情况下当然可以使用,但提供的选择非常有限。 我想知道如何将自己的自定义颜色添加到文档中? 问题答案: 很多选择。 也有图案颜色和阴影颜色,但是简单得多。
问题内容: 我正在使用Vaadin,我想为我的表格/表格中的特定单元格设置背景色,或者如果无法为特定表格中的单元格设置背景色,我想至少为表格/表格中的特定单元格设置字体颜色。我有一个表格/表格的代码TableView如下: 表格/表格的内容类为: 如果可以将背景颜色设置为特定的单元格,或者至少设置字体颜色,并且您知道该怎么做,请写信。例如,在表格/表格中单元格的值为“ 1”的情况下,我想将其设置为
我正在使用Vaadin,我想为网格/表格中的特定单元格设置背景颜色,或者如果无法为特定单元格设置背景颜色,我想至少为网格/表格中的特定单元格设置字体颜色。我有网格/表格的代码TableView如下: 网格/表的内容类为: 如果可以为特定单元格设置背景颜色,或者至少设置字体颜色,并且你知道怎么做,请写信。例如,网格/表格中单元格的值为“1”,我想将其设为红色,但如果单元格的值为“5”,我想将其设为绿
有人知道如何更改ZK网格中单元格的背景色吗?在网上搜索了几个小时,找不到太多。静态单元格不是问题,但这是动态渲染的网格。 计划是将某些细胞涂成红色或黄色,因为我想突出显示特定的值。 我的Zul: 我的虚拟机:
问题内容: 我使用xlwt Python库在excel工作簿中写入数据。 现在我在将背景色添加到excel单元时遇到了一些问题。 例如,我在RGB(10,20,30)中有下一个颜色,最简单的方法是什么?有什么办法可以将此颜色设置为单元格吗? 问题答案: 在此示例中,我展示了如何设置单元格的背景色,您可以将其运行以得到结果:
问题内容: 如何使用JavaScript设置HTML元素的CSS背景颜色? 问题答案: 通常,通过使CSS属性驼峰命名为caseCase而不使用任何破折号,可以将CSS属性转换为JavaScript。如此成为。