JavaはPOIを使用してExcelテーブルを処理します(セル内のデータを取得します)


1.POIとは?
Apache POIはApacheソフトウェア財団のオープンソースプロジェクトであり、POIはAPIがJavaプログラムにMicrosoft Officeフォーマットファイルの読み取りと書き込みの機能を提供する.NETの開発者は、NPOI(POI for.NET)を利用してMicrosoft Officeドキュメントにアクセスできる機能です.ここで、HSSFはMicrosoft Excel XLS形式のファイルを読み書きする機能を提供する.XSSFは、Microsoft Excel OOXML XLSX形式のファイルを読み書きする機能を提供します.HWPFは、Microsoft Word DOC形式のファイルを読み書きする機能を提供します.HSLFは、Microsoft PowerPoint形式のファイルを読み書きする機能を提供します.HDGFはMicrosoft Visio形式のファイルを読む機能を提供します.HPBFはMicrosoft Publisher形式のファイルを読む機能を提供します.HSMFはMicrosoft Outlook形式のファイルを読む機能を提供する.HSSFとXSSF HSSFについてはPOIエンジニアリングによるExcel 97(-2007)ファイル操作の純Java実装XSSFはPOIエンジニアリングによるExcel 2007 OOXML(.xlsx)ファイル操作の純Java実装POI 3.8バージョンからXSSFベースの低メモリ占有API----SXSSFを提供する
2.POI JARパッケージの取得
http://poi.apache.org/
3.POIを使用したExcelインスタンスの処理
public ArrayList<Students> analyzeFile() throws NumberFormatException {
     
    ArrayList<Students> students = new ArrayList<Students>();
    XSSFWorkbook xssfWorkbook = null;
    try {
     
        InputStream is = new FileInputStream(file);
        xssfWorkbook = new XSSFWorkbook(is);//   
        Sheet sheet = xssfWorkbook.getSheet("sheet1");//  Excel  1
        //    
        int rows = sheet.getLastRowNum();
        //    
        int clos = sheet.getRow(0).getPhysicalNumberOfCells();
        for (int i = 1; i < rows; i++) {
     
            for (int j = 0; j < clos; j++) {
     //        
                int ID = Integer.parseInt(NumberToTextConverter.toText(sheet.getRow(i).getCell(j++).getNumericCellValue()));
                String Name = sheet.getRow(i).getCell(j++).getStringCellValue();
                String Department = sheet.getRow(i).getCell(j++).getStringCellValue();
                int Age = Integer.parseInt(NumberToTextConverter.toText(sheet.getRow(i).getCell(j++).getNumericCellValue()));
                String Run3km = sheet.getRow(i).getCell(j++).getStringCellValue();
                int Sit_ups = Integer.parseInt(NumberToTextConverter.toText(sheet.getRow(i).getCell(j++).getNumericCellValue()));
                int horizontal_bar = Integer.parseInt(NumberToTextConverter.toText(sheet.getRow(i).getCell(j++).getNumericCellValue()));
                String Serpentine_run = sheet.getRow(i).getCell(j++).getStringCellValue();
                students.add(new Students(ID,Name,Department,Age,Run3km,Sit_ups,horizontal_bar,Serpentine_run));
            }
        }
    } catch (Exception e1) {
     
        e1.printStackTrace();
    }
    return students;
}