Java11 Apache POIでExcelの行・列を非表示にするサンプル

環境
ApachePOI 4.1.2
Eclipse 4.24
Java SE-11

構文
1.setColumnHidden(int columnIndex, boolean hidden)
引数
columnIndex 列のインデックス
hidden true/false
trueの場合、列を非表示にします

2.setZeroHeight(boolean zHeight)
引数
zHeight true/false
行を非表示にします。

3.説明
.xls形式、.xlsx形式どちらの形式のExcelにも対応します。
存在しないインデックス番号を指定した場合は例外が発生します。
Sheet sheet = workbook.getSheetAt(0);
シートのインデックス番号は0から指定しますので、1シート目は0、2シート目は1…となります。

使用例

package com.arkgame.study;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

public class ExcelRead2 {

      public static final String filePath = "C:\\study\\2023\\\\arkgame.xlsx";

      public static void main(String[] args) throws EncryptedDocumentException, IOException {

            InputStream inputStream = null;
            Workbook workbook = null;
            FileOutputStream fileOutputStream = null;

            try {
                  // Excelファイルを読み込む
                  inputStream = new FileInputStream(filePath);
                  workbook = WorkbookFactory.create(inputStream);

                  // 1番目のシートを読み込む
                  Sheet sheet = workbook.getSheetAt(0);

                  // 3列目を非表示にする
                  sheet.setColumnHidden(2, true);

                  // 4行目を非表示にする
                  sheet.getRow(3).setZeroHeight(true);

                  // Excelファイル出力
                  fileOutputStream = new FileOutputStream(filePath);
                  workbook.write(fileOutputStream);

            } catch (Exception ex) {
                  ex.printStackTrace();
            } finally {

                  try {
                        workbook.close();
                        fileOutputStream.close();
                  } catch (Exception ex2) {
                        ex2.printStackTrace();
                  }
            }

      }

}

実行結果
読み込んだExcelの3列目と4行目を非表示にする

Java

Posted by arkgame