この記事では、簡単にどのようにApache POIの生存キットを説明し、Excelスプレッドシートを解析します。
ApacheのPOIライブラリの基本的な定義
HSSF`
マイクロソフトExcel 2003のファイルに関連付けられた命令の前に付けたクラス名の前に。
XSSF`
クラス名の接頭辞の前で操作は、Microsoft Excel 2007のファイルのバージョン以上に関連していることを示します。
XSSFWorkbook`
そして、HSSFWorkbook
Excelワークブックとしてクラス行為であります
HSSFSheet`
そして、XSSFSheet
Excelワークシートとしてクラス行為であります
Row
カスタムExcelの行
Cell
Excelのセルは、基準線を定義します。
pom.xml
1 2 3 4 5
|
< 依存性 > < のgroupId > org.apache.poi </ のgroupId > < たartifactId > POI-OOXML </ たartifactId > < バージョン > 3.15 </ バージョン > </ 依存 >
|
例デモ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
パッケージ site.sixteen.demoutils。
輸入 org.apache.poi.ss.usermodel *。; 輸入 org.apache.poi.xssf.usermodel.XSSFSheet。 輸入 org.apache.poi.xssf.usermodel.XSSFWorkbook;
輸入 java.io. *; インポートするjava.util.Iterator;
パブリック クラス {
パブリック 静的 ボイド writeToExcel (オブジェクト[] []データ、文字ファイル名は) スロー IOExceptionが { XSSFWorkbookブック=新しい XSSFWorkbook()。 XSSFSheetシート= workbook.createSheet( "A班")。INTたrowNum = 0 ; ため([]リストオブジェクト:データ){ 行row = sheet.createRow(たrowNum ++)。int型 colNum引数= 0 ; 用(Object値:リスト){ セルCELL = row.createCell(colNum引数++)。もし(値のinstanceof文字列){
cell.setCellValue((文字列)値)。 } そう であれば(値instanceofの整数){ cell.setCellValue((整数)値); } そう であれば(値のinstanceofブール){ cell.setCellValue((ブール)値)。 } 他 { cell.setCellValue(String.valueOf(値))。 } } }
試す(たFileOutputStreamのOutputStream = 新しいたFileOutputStream(filename)で){ workbook.write(のOutputStream)。 } }
公共の 静的な 無効 readExcel (ファイルのファイル)が スローにIOException { FileInputStreamのexcelFile =新しい FileInputStreamを(ファイル); ワークブックのワークブック=新しい XSSFWorkbook(excelFile)。 シートのシート= workbook.getSheetAt( 0)。 反復子の<row> rowIterator = sheet.rowIterator()。一方、(rowIterator.hasNext()){ 行row = rowIterator.next()。 反復子<細胞> cellIterator = row.cellIterator()。一方、(cellIterator.hasNext()){ セルCELL = cellIterator.next()。もし
(cell.getCellTypeEnum()== CellType.STRING){ System.out.print(cell.getStringCellValue()+ "T" )。 } そう であれば(cell.getCellTypeEnum()== CellType.NUMERIC){ System.out.print(cell.getNumericCellValue()+ "T" )。 } そう であれば(cell.getCellTypeEnum()== CellType.BOOLEAN){ System.out.print(cell.getBooleanCellValue()+ "T" )。 } 他 { System.out.print(cell.getStringCellValue()+ "T" )。
System.out.println(); } }
パブリック 静的 ボイド メイン(文字列[]引数) { オブジェクト[] [] DATAS = { { "编号"、 "名字"、 "年龄"、 "性别" }、 { "001" 、 "トム"、 18、真 } 、 { "002" 、 "ジャック"、 10、真 }、 { "003" 、 "10月"、 24、真 } { "004"、"リル"、21、偽 } }。 文字列filename = "/tmp/demo-write.xlsx" 。試す { writeToExcel(DATASファイル名)。 } キャッチ(IOExceptionを電子){ e.printStackTrace(); } 試みる { readExcel(新しいファイル(filename))。 } キャッチ(IOExceptionを電子){ e.printStackTrace(); } }
}
|
結果:
Excelで生成されました/tmp/demo-write.xlsx
分析結果:
1 2 3 4 5 6 7
|
番号名前年齢性別 001トムtrueに18.0 002 10.0ジャックtrueに trueに003 10月24.0 004偽リル21.0
プロセス終了コード0で終了
|
オリジナル:ビッグボックス のJavaは、Apache POIの解析を使用してExcelを生成します