私たちはapache poi 3.8を使用してExcelを解析しています。隠された行は、ユースケースに迷惑データが含まれている傾向があるため、検出する必要があります(スキップする必要があります)。apache poiを使用してExcelの隠しセルを検出
動作するはずと思われる:
row.isFormatted() && row.getRowStyle().getHidden()
しかし、任意の行レベルフォーマットがあるように見えることはありません(getRowStyle()は常にnullを返します)。
for (int i = 0; i < row.getLastCellNum(); i++) {
Cell cell = row.getCell(i);
if (cell != null && cell.getCellStyle() != null && cell.getCellStyle().getHidden())
...
しかし、すべての行のために、我々は(ループの上記のカスタム出力)を取得:
Cell 0 is not hidden [email protected]/false
はない「getHiddenを()」ではない、我々はセルスタイルをチェックすることがうまくいくかもしれないと思った最後の手段として、私が思うように働かないのですか?隠れた行を検出する別の方法はありますか? (非表示の列も素晴らしいボーナスになりますが、関連性の低いATMは少しあります)
隠し行の場合、 'hidden'は' true'に設定されますが、明示的に設定されない限り、 'row.getHeight()'は常にゼロでないデフォルトのワークシート値を返します。私たちは 'row.getZeroHeight()'に頼ることができます –
getZeroHeight()は私が今直面している用途のために働きます。そのように私の問題は解決されますが、 "getRowStyle()"はまだ動作しません。私はあなたの応答に適切な答えとしてフラグを立てるべきですか、あるいはいくつかがgetRowStyle()の問題についていくつかのフィードバックを与えるまで待ちますか? (私はむしろstackoverflowで新しくなっています) – nablex
通常、行スタイルはPOIによって正しくロードされるはずです。したがって、 'getRowStyle()。getHidden()'が動作するはずです。それとも私は思う。私は安全に 'getZeroHeight()'に頼ることができると思います。適切な答えのために私は知らない。あなたの好きなように – Alex