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行目を非表示にする