Die Erkennung von versteckten Zellen in excel -, apache-poi
Sind wir mit apache poi 3.8 zu analysieren zeichnet. Wir müssen in der Lage sein zu erkennen (und überspringen) ausgeblendete Zeilen, die in der Regel enthalten junk-Daten in unseren usecases.
Es scheint, als würde dies funktionieren sollte:
row.isFormatted() && row.getRowStyle().getHidden()
Aber es nie angezeigt wird, werden alle row-level-Formatierung (getRowStyle() immer null zurück). Als letzten Ausweg, dachten wir prüfen Zellenformatvorlagen funktionieren könnte:
for (int i = 0; i < row.getLastCellNum(); i++) {
Cell cell = row.getCell(i);
if (cell != null && cell.getCellStyle() != null && cell.getCellStyle().getHidden())
...
Aber für jede Zeile erhalten wir (benutzerdefinierte Ausgabe in der obigen for-Schleife):
Cell 0 is not hidden org.apache.poi.hssf.usermodel.HSSFCellStyle@1b9142d0 / false
Nicht die "getHidden()" nicht funktioniert oder ist es nicht so funktionieren, wie ich denke, dass es funktioniert? Gibt es eine andere Möglichkeit zu erkennen, ausgeblendete Zeilen? (versteckte Spalten, wäre auch ein netter bonus, aber etwas weniger relevant atm)
Du musst angemeldet sein, um einen Kommentar abzugeben.
getRowStyle
sollte normalerweise so funktionieren, wie Sie sollen.Andernfalls können Sie die Höhe der Zeile, wie Sie ausgeblendete Zeilen neigt dazu, haben eine Höhe auf 0 gesetzt.
Mit
row.getHeight()
oderrow.getZeroHeight()
.hidden
eingestellt isttrue
aber es sei denn, explizite,row.getHeight()
immer wieder die Standard-work-sheet-Wert, die nicht eine null ist. Die wir uns verlassen könnenrow.getZeroHeight()
getRowStyle().getHidden()
funktionieren sollte. Oder so, denke ich. Ich nehme an, wir können sicher verlassen Sie sich aufgetZeroHeight()
. Für die richtige Antwort weiß ich nicht. Wie Sie es wünschenNachdem ich ein paar Ansätze,
row.getZeroHeight()
richtig gearbeitet für die Identifizierung von versteckten Zeile. Auch für diejenigen, die stecken mit Apache-POI <= 3.7 version dieses kann die einzige Lösung sein.