【发布时间】:2019-12-04 06:37:20
【问题描述】:
如何在下面的代码中使用 apache poi 为 Excel 表格中的特定行或标题添加背景颜色,在官方 giude 中作为示例给出
package com.raz.api.engine.apiengine.util;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class xlGen {
public static void main(String[] args) throws Exception {
//Create blank workbook
XSSFWorkbook workbook = new XSSFWorkbook();
//Create a blank sheet
XSSFSheet spreadsheet = workbook.createSheet(" Employee Info ");
//Create row object
XSSFRow row;
//Colors
CellStyle style = workbook.createCellStyle();
style.setFillForegroundColor(IndexedColors.GREEN.getIndex());
//style.setFillPattern(CellStyle.SOLID_FOREGROUND);
Font font = workbook.createFont();
font.setColor(IndexedColors.RED.getIndex());
style.setFont(font);
//This data needs to be written (Object[])
Map < String, Object[] > empinfo =
new TreeMap < String, Object[] >();
empinfo.put( "1", new Object[] { "EMP ID", "EMP NAME", "DESIGNATION" });
empinfo.put( "2", new Object[] { "tp01", "Gopal", "Technical Manager" });
empinfo.put( "3", new Object[] { "tp02", "Manisha", "Proof Reader" });
empinfo.put( "4", new Object[] { "tp03", "Masthan", "Technical Writer" });
empinfo.put( "5", new Object[] { "tp04", "Satish", "Technical Writer" });
empinfo.put( "6", new Object[] { "tp05", "Krishna", "Technical Writer" });
//Iterate over data and write to sheet
Set < String > keyid = empinfo.keySet();
int rowid = 0;
for (String key : keyid) {
row = spreadsheet.createRow(rowid++);
Object [] objectArr = empinfo.get(key);
int cellid = 0;
for (Object obj : objectArr) {
Cell cell = row.createCell(cellid++);
cell.setCellValue((String)obj);
}
}
//cell1.setCellStyle(style);
//Write the workbook in file system
FileOutputStream out = new FileOutputStream(new File("Writesheet.xlsx"));
workbook.write(out);
out.close();
System.out.println("Writesheet.xlsx written successfully");
}
}
不要阅读下面的这一段.. 所以我需要给标题一些颜色,我想学习一些在 apache poi 中使用的特性和方法 在本页中,我们将学习如何在 XLSX 中设置颜色。通常我们需要在excel文件中为我们的行和单元格设置背景颜色和字体颜色。设置颜色可用作标题或列名,增加 Excel 文件的可读性。在这个例子中,我们将从头开始了解如何在 XLSX 中着色。我们只需要获取 CellStyle 的实例,然后将所需的颜色设置为 CellStyle,然后将其分配给 XLSX 单元格。创建一个 XSSFWorkbook。从 XSSFWorkbook 获取 CellStyle,如下所示。
【问题讨论】:
-
我已阅读,但无法更改特定行的颜色
-
No..For w=example 如果我有 5 行。我只需要更改第一行的颜色。请检查我的代码,我从 for 循环中获取值。
标签: java excel apache-poi