首页 > 代码库 > POI获取excel单元格红色字体,淡蓝色前景色的内容

POI获取excel单元格红色字体,淡蓝色前景色的内容

如果是Microsoft Excel 97-2003 工作表 (.xls)

if(31 == cell.getCellStyle().getFillForegroundColor()) //判断单元格前景色为淡蓝色if(10 == book.getFontAt(cell.getCellStyle().getFontIndex()).getColor()) //判断单元格字体颜色为红色

如果是Microsoft Excel 工作表 (.xlsx)

if(0 == cell.getCellStyle().getFillForegroundColor()) //判断单元格前景色为淡蓝色if(0 == book.getFontAt(cell.getCellStyle().getFontIndex()).getColor()) //判断单元格字体颜色为红色

 

具体的java示例代码如下:

 1 import java.io.FileInputStream; 2 import java.io.FileNotFoundException; 3 import java.io.IOException; 4 import org.apache.poi.hssf.usermodel.HSSFWorkbook; 5 import org.apache.poi.ss.usermodel.Cell; 6 import org.apache.poi.ss.usermodel.DataFormatter; 7 import org.apache.poi.ss.usermodel.Row; 8 import org.apache.poi.ss.usermodel.Sheet; 9 import org.apache.poi.ss.usermodel.Workbook;10 import org.apache.poi.xssf.usermodel.XSSFWorkbook;11 12 public class TestExcel {13     private static final DataFormatter FORMATTER = new DataFormatter();14 15     /**16      * 获取单元格内容17      * 18      * @param cell19      *            单元格对象20      * @return 转化为字符串的单元格内容21      */22     private static String getCellContent(Cell cell) {23         return FORMATTER.formatCellValue(cell);24     }25 26     private static String getExcelValue(String filePath, int sheetIndex) {27         String valuehttp://www.mamicode.com/= "";28         try {29             // 创建对Excel工作簿文件30             Workbook book = null;31             try {32                 book = new XSSFWorkbook(new FileInputStream(filePath));33             } catch (Exception ex) {34                 book = new HSSFWorkbook(new FileInputStream(filePath));35             }36 37             Sheet sheet = book.getSheetAt(sheetIndex);38             // 获取到Excel文件中的所有行数39             int rows = sheet.getPhysicalNumberOfRows();40             // System.out.println("rows:" + rows);41             // 遍历行42 43             for (int i = 0; i < rows; i++) {44                 // 读取左上端单元格45                 Row row = sheet.getRow(i);46                 // 行不为空47                 if (row != null) {48                     // 获取到Excel文件中的所有的列49                     int cells = row.getPhysicalNumberOfCells();50                     // System.out.println("cells:" + cells);51 52                     // 遍历列53                     for (int j = 0; j < cells; j++) {54                         // 获取到列的值55                         Cell cell = row.getCell(j);56                         if (cell != null) {57                             // if (31 ==58                             // cell.getCellStyle().getFillForegroundColor() &&59                             // 10 ==60                             // book.getFontAt(cell.getCellStyle().getFontIndex()).getColor())61                             if (0 == cell.getCellStyle().getFillForegroundColor() 62                                && 0 == book.getFontAt(cell.getCellStyle().getFontIndex()).getColor())63                                 value += "第" + (i + 1) + "行 第" + (j + 1) + "列 的内容是: " + getCellContent(cell) + ",";64                         }65                     }66 67                 }68             }69         } catch (FileNotFoundException e) {70             e.printStackTrace();71         } catch (IOException e) {72             e.printStackTrace();73         }74 75         return value;76 77     }78 79     public static void main(String[] args) {80 81         String filePath = "F://example.xls";82         int sheetIndex = 0;83 84         String[] val = getExcelValue(filePath, sheetIndex).split(",");85         for (int i = 0; i < val.length; i++) {86             System.out.println(val[i]);87         }88     }89 }

POI获取excel单元格红色字体,淡蓝色前景色的内容