我正在使用apache POI库从java代码创建excel报告。我在格式化excel单元格时遇到问题。请在下面找到一段代码。
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("coverageData");
int rownum = 0,cellnum=0;
Row row1 = sheet.createRow(rownum++);
Cell cell10 = row1.createCell(cellnum++);
cell10.setCellValue("cell data");
XSSFCellStyle row1style = (XSSFCellStyle)cell10.getCellStyle();
XSSFColor grayColor = new XSSFColor(Color.DARK_GRAY);
row1style.setFillBackgroundColor(grayColor);
cell10.setCellStyle(row1style);
try
{
//Write the workbook in file system
FileOutputStream out = new FileOutputStream(new File("P:\\automation\\Spreadsheet.xlsx"));
workbook.write(out);
out.close();
System.out.println("Spreadsheet.xlsx written successfully on disk.");
}
catch (Exception e)
{
e.printStackTrace();
}
这里的问题是我在最后一行代码中设置了cell10样式,但是它没有受到程序创建的excel表的影响。
提前致谢。
答案 0 :(得分:2)
尝试一下,对我来说工作正常:
import java.io.File;
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class TestClass {
public static void main(String[] args){
Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("coverageData");
int rownum = 0,cellnum=0;
Row row1 = sheet.createRow((short)rownum++);
//Set Color style start
CellStyle row1style = wb.createCellStyle();
row1style.setFillBackgroundColor(IndexedColors.LIGHT_GREEN.getIndex());
row1style.setFillPattern(CellStyle.BIG_SPOTS);
//Set Color style end
Cell cell10 = row1.createCell((short)cellnum++);
cell10.setCellStyle(row1style);
cell10.setCellValue("cell data");
try{
//Write the workbook in file system
FileOutputStream out = new FileOutputStream(new File("Spreadsheet.xlsx"));
wb.write(out);
out.close();
System.out.println("Spreadsheet.xlsx written successfully on disk.");
} catch (Exception e) { e.printStackTrace(); }
}
}
答案 1 :(得分:0)
你需要设置这样的颜色:
final XSSFCellStyle description = (XSSFCellStyle) workbook.createCellStyle();
description.setFillForegroundColor( yourColor );
description.setFillPattern( FillPatternType.SOLID_FOREGROUND );
这就是你需要一个填充模式