Javaの操作Excelは2総ポイとJXLを持つ方法は、次のコードは、簡単な実現です。
それから
輸入org.apache.poi.hssf.usermodel.HSSFRow。 輸入org.apache.poi.hssf.usermodel.HSSFSheet; 輸入org.apache.poi.hssf.usermodel.HSSFWorkbook; 輸入org.apache.poi.openxml4j.exceptions.InvalidFormatException。 輸入org.apache.poi.ss.usermodel.Row。 輸入org.apache.poi.ss.usermodel.Sheet; 輸入org.apache.poi.ss.usermodel.Workbook; 輸入org.apache.poi.ss.usermodel.WorkbookFactory。 輸入org.springframework.stereotype.Component; インポートのjava.io.File; 輸入java.io.FileOutputStreamは、 インポートにjava.io.IOException; @成分 パブリック クラスExcelByPoi { 公共の 静的な 無効writeExcelByPoi(文字列のパス){ 試み{ // 创建工作薄 HSSFWorkbookワークブック= 新しいHSSFWorkbook(); // 创建工作表 HSSFSheetシート= workbook.createSheet( "シート1" )。 用(INTの列= 0、行<10;行++ ) { HSSFRow行 = sheet.createRow(行)。 用(INT COL ++; COL <10 COL = 0 ) { もし(行== 0 ){ // 追加ヘッダ rows.createCell(0).setCellValue( "名前" ); rows.createCell( .setCellValue( "クラス" 1。)); rows.createCell( 2).setCellValue( "性別" ); rows.createCell( 3).setCellValue("年齢" ); rows.createCell( 4).setCellValue("誕生日" ); rows.createCell( 5).setCellValue(" "古い); rows.createCell( 6).setCellValue( "学校" ); rows.createCell(7).setCellValue( "教師" ); rows.createCell( 8).setCellValue( "お父さん"。); rows.createCell( 9).setCellValue( "お母さん" ); } 他{ // ワークシートにデータを追加する 行.createCell(COL).setCellValue( "データ"行+ + COL); } } } ファイルxlsFile = 新しい新しいファイル(パス); たFileOutputStream xlsStream = 新しい新たFileOutputStream(xlsFile); workbook.write(xlsStream)。 } キャッチ(IOExceptionをE){ e.printStackTrace(); } } 公共の 静的な 無効readExcelByPoi(文字列のパス){ 試み{ ファイルxlsFile = 新しい新しいファイル(パス); //は、ワークブックを取得 ワークブックワークブック= WorkbookFactory.create(xlsFileを)。 // 枚数取得 INT SheetCount = workbook.getNumberOfSheets()を; // ワークシートを横断 するための(INT ; I <SheetCount I ++ I = 0 ) { シートシート =workbook.getSheetAt(I); // 取得した行 のint行sheet.getLastRowNum =()+ 1 ; // 列の数を取得し、最初の行は、ランクの数を変更することで、その結果、得られる 行sheet.getRow TMP =(0 ); IF( == TMP NULL ) { 続行; } int型 COLS = tmp.getPhysicalNumberOfCells(); //は、データを読み取る ための(int型の行= 0、行<行、行++ ) { 行R&LT =sheet.getRow(行)。 用(INT ; COL <COLS; COL = 0 COL ++ ) { System.out.printf( "%の10S" 、r.getCell(COL).getStringCellValue())。 } のSystem.out.println(); } } } キャッチ(IOExceptionを電子){ e.printStackTrace(); } キャッチ(InvalidFormatException電子){ e.printStackTrace(); } } }
JXL
<依存> <groupIdを> net.sourceforge.jexcelapi </ groupIdを> <たartifactId> JXL </たartifactId> <バージョン> 2.6.10 </バージョン> </依存関係>
インポートのjava.io.File; インポートにjava.io.IOException; 輸入jxl.Workbook; 輸入jxl.write.Label; 輸入jxl.write.WritableSheet; 輸入jxl.write.WritableWorkbook; 輸入jxl.write.WriteException。 輸入jxl.Sheet; 輸入jxl.read.biff.BiffException。 輸入org.springframework.stereotype.Component; @Component パブリック クラスExcelByJxl { 公共の 静的な 無効writeExcelByJxl(文字列のパス){ 試み{ ファイルxlsFile = 新しいですファイル(パス); // ワークブック作成 WritableWorkbookワークブック= Workbook.createWorkbook(xlsFileを); // ワークシートの作成 WritableSheetシート= workbook.createSheet( "シート1"、0 ); のため(int型の行= 0;の行を< 10;行++ ) { ための(int型 COL = 0、COL <10; COL ++ ) { // ワークシート内のデータに追加 sheet.addCell(新しい新しいラベル(COL、並んで、 "データ"行+ + COL)); } } // ワークシートを作成 WritableSheetシート1 = workbook.createSheet( "シート2"、0 ); 用(INT列= 0、行<10;行++ ) { ための(int型 COL = 0、COL <10; COL ++ ) { 場合(行== 0 ){ // 添加表头 sheet1.addCell(新たなラベル(0、 0、 "班级" )); sheet1.addCell(新ラベル(1、0、 "姓名" )); sheet1.addCell(新ラベル(2、0、 "年级" )); シート1。新しい新しいラベル(3、0、 "年齢" )); sheet1.addCell(新新ラベル(4、0、 "誕生日" )); sheet1.addCell(新新ラベル(5、0、 "アドレス" )) ; sheet1.addCell(新しい新しいラベル(6、0、 "性別" )); sheet1.addCell(新しい新しいラベル(7、0、 "お父さん" )); sheet1.addCell(新しい新しいラベル(8、0、 "お母さん" ) ); sheet1.addCell(新新ラベル(9、0、 "クラス"。 )); } 他{ // 向工作表中添加数据 sheet1.addCell(新たなラベル(列、行、 "データ" +行+ COL))。 } } } )(workbook.write。 )(workbook.close。 } キャッチ(IOExceptionを電子){ e.printStackTrace(); } キャッチ(WriteException電子){ e.printStackTrace(); } } 公共の 静的な 無効readExcelByJxl(文字列のパス){ しようと{ ファイルxlsFile = 新しいですファイル(パス); // ワークブックオブジェクト取得 ワークブックワークブック= Workbook.getWorkbook(xlsFileを); // 取得するすべてのワークシートの シート[] =シートworkbook.getSheets(); // ワークシートを通過する IF(!枚= ヌル) { 用(シートのシート:シート) { // 行の取得 int型の行= sheet.getRowsを(); // 列の数を取得 int型 = COLSを(sheet.getColumns); // データを読み出す ために(INT(BiffException電子){行= 0。行<行。行++ ) { ため(INT COL = 0、COL <COLS; COL ++ ) { System.out.printf( "%の10S" 、sheet.getCell(COL、行) .getContents())。 } のSystem.out.println(); } } } workbook.close()。 } キャッチ(IOExceptionを電子){ e.printStackTrace(); } キャッチ e.printStackTrace(); } } }