Я пытался изменить цвет ячейки строки с точным соответствием из исходного файла Excel по сравнению с другим файлом Excel и не смог сделать это со всеми различными предлагаемыми примерами.
Я рассматриваю каждую запись в ячейке как строку и сравниваю эту строку со строкой другого листа Excel и, если совпадение найдено, я хочу выделить цвет ячейки исходной строки как ЗЕЛЕНЫЙ.
Вот код, который я написал для сравнения двух таблиц Excel (Book1 и Book2), и мне нужна помощь, если кто-то может помочь изменить цвет ячейки условия точного соответствия в Book1.
Или, если необходимо создать новый файл Excel с перенаправленным содержимым из условий точного соответствия Book1?
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.CellType;
import java.io.FileInputStream;
import java.io.IOException;
public class ExcelCompare {
public static void main(String[] srgs) throws IOException {
FileInputStream fileInputStream1 = new
FileInputStream("C:\\Stuff\\JavaProject\\Book1.xlsx");
XSSFWorkbook workbook1 = new XSSFWorkbook(fileInputStream1);
XSSFSheet worksheet1 = workbook1.getSheet("Sheet1");
int rowCount1= worksheet1.getPhysicalNumberOfRows();
FileInputStream fileInputStream2 = new
FileInputStream("C:\\Stuff\\JavaProject\\Book2.xlsx");
XSSFWorkbook workbook2 = new XSSFWorkbook(fileInputStream2);
XSSFSheet worksheet2 = workbook2.getSheet("Sheet1");
int rowCount2= worksheet2.getPhysicalNumberOfRows();
System.out.println("Row count 1=" + rowCount1 + " Row count 2 = " + rowCount2);
for (int i = 1; i < rowCount1; i++) {
XSSFRow row1 = worksheet1.getRow(i);
//------------------------------ comapring Name --------------------------
String namestr1 = "";
XSSFCell name1 = row1.getCell(0);
if (name1 != null)
{
name1.setCellType(CellType.STRING);
namestr1 = name1.getStringCellValue();
}
int j=1;
int notNullRows=0;
int rowCount2WithNulls = rowCount2;
while(j<rowCount2WithNulls && notNullRows <= rowCount2 )
{
XSSFRow row2 = worksheet2.getRow(j);
String namestr2 = "";
j++;
if (row2 != null)
{
notNullRows++;
XSSFCell name2 = row2.getCell(0);
if (name2 != null) {
name2.setCellType(CellType.STRING);
namestr2 = name2.getStringCellValue();
}
}
else
{
rowCount2WithNulls++;
}
if(namestr1.equals(namestr2))
{
System.out.println("[Processing] :"+"NAME " + namestr1 + "=> Book 1 name = " + namestr1+ " Book 2 name = " + namestr2);
}
}
}
}
}