gpt4 book ai didi

java - 使用jxl为excel表中的单元格设置不同的颜色

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:19:17 25 4
gpt4 key购买 nike

我一直在学习如何使用 jXL API,因为我是新手。我有一个 Excel 工作表,我想根据真/假条件为单元格的数据着色。例如,如果条件为真,则必须为绿色,如果条件不成立,则为红色。

我试图在使用 jxl api 将数据写入 excel 表时实现这一目标。

我一直试图完成的代码片段如下。

用于写入 Excel 工作表的代码片段。我创建了一个方法来为每个单元格定义格式属性,而 wcellFormat1 是相同的变量,其类型为 WritableCellFormat。

for(int i=1; i11; i++){
String srnum = String.valueOf(rnum);
wsheet.addCell(new jxl.write.Label(1, rc, srnum, wcellFormat1));
wsheet.addCell(new jxl.write.Label(2, rc, "b", wcellFormat1));
wsheet.addCell(new jxl.write.Label(3, rc, "c", wcellFormat1));
wsheet.addCell(new jxl.write.Label(4, rc, "d", wcellFormat1));
wsheet.addCell(new jxl.write.Label(5, rc, "e", wcellFormat1));
wsheet.addCell(new jxl.write.Label(6, rc, "f", wcellFormat1));

rnum++;
rc++;
System.out.println(""+rnum+"\n"+rc);
}
wbook.write();
wbook.close();

此代码片段用于应用我之前提到的条件。 wfontStatus 是 WritableFont 类型,fCellstatus 是我用来指定格式的 WritableCellFormat 类型。

public void formatCellStatus(Boolean b) throws WriteException{

if(b == true){
wfontStatus = new WritableFont(WritableFont.createFont("Arial"), WritableFont.DEFAULT_POINT_SIZE, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.GREEN);
}else{
wfontStatus = new WritableFont(WritableFont.createFont("Arial"), WritableFont.DEFAULT_POINT_SIZE, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.RED);
}

fCellstatus = new WritableCellFormat(wfontStatus);
fCellstatus.setWrap(true);
fCellstatus.setAlignment(jxl.format.Alignment.CENTRE);
fCellstatus.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
fCellstatus.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.MEDIUM, jxl.format.Colour.BLUE2);
}

我面临的问题是我不明白如何使用上述方法在写入工作表时应用必要的条件。

请帮我解决这个问题。谢谢。

最佳答案

该方法应该类似于

public WritableCellFormat createFormatCellStatus(boolean b) throws WriteException{
Colour colour = (b == true) ? Colour.GREEN : Colour.RED;
WritableFont wfontStatus = new WritableFont(WritableFont.createFont("Arial"), WritableFont.DEFAULT_POINT_SIZE, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, colour);
WritableCellFormat fCellstatus = new WritableCellFormat(wfontStatus);

fCellstatus.setWrap(true);
fCellstatus.setAlignment(jxl.format.Alignment.CENTRE);
fCellstatus.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
fCellstatus.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.MEDIUM, jxl.format.Colour.BLUE2);
return fCellstatus;
}

在创建标签的循环中

for(int i=1; i11; i++){
String srnum = String.valueOf(rnum);
wsheet.addCell(new jxl.write.Label(1, rc, srnum, createFormatCellStatus(true))); //will create green cell
wsheet.addCell(new jxl.write.Label(2, rc, "b", createFormatCellStatus(false))); //will create red cell
wsheet.addCell(new jxl.write.Label(3, rc, "c", createFormatCellStatus(false)));
wsheet.addCell(new jxl.write.Label(4, rc, "d", createFormatCellStatus(true)));
wsheet.addCell(new jxl.write.Label(5, rc, "e", createFormatCellStatus(false)));
wsheet.addCell(new jxl.write.Label(6, rc, "f", createFormatCellStatus(true)));

rnum++;
rc++;
System.out.println(""+rnum+"\n"+rc);
}
wbook.write();
wbook.close();

关于java - 使用jxl为excel表中的单元格设置不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14848241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com