エクスポートExcelテンプレートエクセルポイによると、

/ ** 
**ターゲットセル値
* /
パブリック
クラス細胞{ / ** * *行 * / プライベート int型のロウ; / ** *コラム * / プライベート int型のカラム; / ** *セルの値 * / プライベートヴァルオブジェクト、 パブリック INT のgetRow(){ 戻り、行 } 公共 ボイド setRow(INTの行){ この .Row = 行; } 公共 のint のgetColumn(){ 戻り列と、 } 公共 ボイド SetColumn関数(int型の列){ この .column = コラム。 } パブリックオブジェクトGETVAL(){ 戻りヴァルと、 } 公共 ボイドSETVAL(オブジェクト・ヴァル){ この .val = ヴァル。 } パブリック細胞(int型の列、int型のカラム、ヴァルオブジェクト){ この .row = 行。 この .column = カラム; この .val = valの; } パブリック細胞(){} }

 


/ **
**表空间对象
** /
パブリック
クラスシート{ プライベート文字列SHEETNAME。 パブリック文字列getSheetName(){ 戻りSHEETNAMEと、 } 公共 ボイドsetSheetName(文字列SHEETNAME){ この .sheetName = SHEETNAME。 } パブリックリスト<細胞> getCells(){ 戻り細胞。 } 公共 ボイド setCells(一覧<細胞> 細胞){ これは = .cells 細胞。 } プライベートリスト<細胞>細胞=Lists.newArrayList(); パブリックシート(文字列SHEETNAME、リスト<細胞> 細胞){ この .sheetName = SHEETNAME。 これは = .cells 細胞; } パブリックシート(){} }

 

1  パブリック 最終 クラスExcelUntil {
 2  
。3      / ** 
4       *テンプレートは、Excelを派生
 5       * @param templatePathテンプレートパスを
 6       * @paramのオブジェクト空間のシートのシート設定テーブルセル特定値
 。7       * @param EXPORTPATH輸出経路
 8       * @スロー例外
 。9       * / 
10      @SuppressWarnings( "リソース" 。11      公共 静的 無効 exportExcelByTemplate(文字列templatePath、リスト<シート> シート、文字列EXPORTPATH)
 12があるが             スローされます例外{
 13          であれば(Strings.isStringEmpty(templatePath)|| CollectionUtils.isEmpty(シート)|| Strings.isStringEmpty(EXPORTPATH)){
 14              リターン15          }
 16          = ExcelUntilでのInputStream。クラス.getResourceAsStream(templatePath)。
17          POIFSFileSystem poifsFileSystem = 新しいPOIFSFileSystem(IN)
18          HSSFWorkbookブック= 新しいHSSFWorkbook(poifsFileSystem)。
19          のためにint型、iが(sheets.sizeを<); I = 0 iが++ ){
 20              HSSFSheetシート=workbook.getSheetAt(I);
21              sheet.setForceFormulaRecalculation()。
22              リスト<細胞>細胞= sheets.get(I).getCells();
23              cellSetValue(シート、細胞)。
24          }
 25          のFileOutputStreamアウト= 新しいたFileOutputStream(EXPORTPATH)。
26          workbook.write(アウト)。
27          out.close()。
28      }
 29  
30      
31      パブリック 静的 HSSFWorkbook exportExcel(文字列templatePath、リスト<シート> シート、文字列EXPORTPATH)
 32は、             スロー例外{
 33          = ExcelUntilでのInputStream。クラス.getResourceAsStream(templatePath)。
34          POIFSFileSystem poifsFileSystem = 新しいPOIFSFileSystem(IN)
35          HSSFWorkbookブック= 新しいHSSFWorkbook(poifsFileSystem)。
36          のためには、int型 0 = Iと、iはsheets.sizeを()<; iは++ ){
 37              HSSFSheetシート= workbook.getSheetAt(I)。
38              sheet.setForceFormulaRecalculation()。
39              リスト<細胞>細胞= sheets.get(I).getCells();
40             cellSetValue(シート、細胞);
 41である         }
 42は、         戻りブック、
 43は         
44れる     }
 45      
46である     
47      / ** 
48       の特定のセルの*設定値
 49       * @paramのシートの特定のテーブルスペース
 50個の      * @param 特定の細胞が細胞内に配置された
 51       * / 
52である     プライベート 静的 ボイド cellSetValue(HSSFSheetシート、リスト<細胞> 細胞){
 53れる         // データのランクを設定し、設定値
54が          セルC = NULL ;
 55          オブジェクトヴァル= NULL;
56          HSSFCellセル= NULL ;
57          のためにint型 i = 0; iが++; iがcells.size()< ){
 58              C = cells.get(i)を、
59              もし(C == NULL ){
 60                  続けます61              }
 62              ヴァル= c.getVal()。
63              セル= sheet.getRow(c.getRow() - 1).getCell(c.getColumn() - 1 )。
64              であれば(ヴァルinstanceofの整数){
 65                  cell.setCellValue((整数)のVal);
66             } そう であれば(ヴァルinstanceofのダブル){
 67                  cell.setCellValue((ダブル)のVal);
68              } そう であれば(ヴァルのinstanceof 日){
 69                  cell.setCellValue((日)のVal);
70              } そう であれば(ヴァルinstanceofのショート){
 71                  cell.setCellValue((ショート)のVal);
72              } {
 73                  cell.setCellValue(ヴァル+ "" )。
74             }
 75          }
 76      }
 77 }

 

おすすめ

転載: www.cnblogs.com/huzi007/p/11348238.html