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 cell

19      *            单元格对象

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 value = "";

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 }

你可能感兴趣的:(Excel)