한 HSSF 통합 문서를 다른 템플릿 용 템플릿으로 사용하고 있습니다. 그것이 어떻게 작동하는지 알고 계시 겠지만,이 글을 읽는다면 통합 문서 1에서 셀을 가져 와서 스타일을 통합 문서 2의 CellStyle로 설정할 수는 없습니다.이 방법은 두 번째 클래스에서 cloneStyle 스타일.복제 된 HSSFCellStyle이 복제 된 스타일과 같지 않은 이유는 무엇입니까?
그러나 워크 시트에는 최대 4000 개의 스타일이 있으므로 무제한으로 복제 할 필요가 없습니다. 따라서 복제 할 스타일이 이미 내 통합 문서에있는 스타일과 같은지 확인하려고합니다. 그럴 경우 이미 존재하는 스타일을 사용합니다. 그렇지 않은 경우 템플릿 통합 문서에서 스타일을 복제합니다.
아래 정의 된 equals 메서드를 사용하고 있는데 스타일에서 가져온 통합 문서를 신경 쓰지 않는 것 같습니다.
그러나,이 모든 말에 나는 확인 :
if (!getCellStyle().equals(cell.getCellStyle())) {
System.out.println("Not equal to cloned style!");
} else {
System.out.println("Equal to cloned style.");
}
이 ... 출력은 스타일이 동일하지 있음을 나타냅니다.
왜 이런가요?
참고 : 두 개체가 모두 instanceof를 사용하는 HSSFCellStyle 유형인지 확인합니다.
감사합니다. 왜 내가 그런 생각을하지 않았는지 모르겠다. 아마도 equals()가 통합 문서 특정 평등보다는 스타일 유사성을 검사하려고한다는 생각 때문에 맹목적이었을 것입니다. –
이것은이 질문에 대답하지만 다른 것을 올립니다 ... 이것은 스타일 유사성을 감지하는 방법입니다. DataFormatString은 분명히 모든 것이 아닙니다. –
인덱스를 다르게하여 동일한 통합 문서에서 두 가지 스타일을 렌더링 할 수 있습니다. 이것들은 같지 않을 것입니다. 이것이 equals 메서드가 동작하는 방식입니다. – Gagravarr