如何使用apache poi从两个excel文件中检查确切的样式?

时间:2015-04-08 11:45:55

标签: apache-poi

我想比较两个excel文件单元格样式。通过使用 apache poi 我如何逐个单元地比较样式? 而且我还需要哪种风格不匹配,比如对齐或粗体或颜色......等等。这意味着不匹配的样式应该是一个字符串(样式名称 - 对齐,颜色....)

2 个答案:

答案 0 :(得分:1)

使用Cell.getCellStyle(),您可以找到每个单元格的样式。有了它,您可以检查细粒度CellStyle设置。

答案 1 :(得分:0)

你可以这样做:

sheet.getRow(0).getCell(0).getCellStyle().getCoreXf();

getCoreXf()方法返回:

<xml-fragment numFmtId="14" fontId="0" fillId="2" borderId="0" xfId="0" applyNumberFormat="1" applyFill="1" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"/>

示例代码(比较两个单元格的样式):

FileInputStream file = new FileInputStream(new File("res/Book1.xlsx"));

//Get the workbook instance for XLS file 
XSSFWorkbook workbook = new XSSFWorkbook (file);

//Get first sheet from the workbook
XSSFSheet sheet = workbook.getSheetAt(0);

CTXf style1 = sheet.getRow(0).getCell(0).getCellStyle().getCoreXf();
CTXf style2 = sheet.getRow(0).getCell(1).getCellStyle().getCoreXf();
System.out.println(style1);
System.out.println(style1.equals(style2)); //true if both are same and false if they are different

这似乎工作正常。请试试!