import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.util.CellRangeAddress;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelFilterSetter {
public static void addFilterToFirstRow(String inputPath, String outputPath) throws IOException {
try (FileInputStream fis = new FileInputStream(inputPath);
Workbook workbook = new XSSFWorkbook(fis)) {
Sheet sheet = workbook.getSheetAt(0); // 1枚目のシートを取得
// 1行目のセル数(列数)を取得
int lastColumn = sheet.getRow(0).getLastCellNum() - 1;
if (lastColumn >= 0) {
// フィルタの範囲を1行目に設定(例: A1〜C1)
sheet.setAutoFilter(new CellRangeAddress(0, 0, 0, lastColumn));
}
// 保存
try (FileOutputStream fos = new FileOutputStream(outputPath)) {
workbook.write(fos);
}
}
}
}