0

Excel ファイルの 1 つのタブからデータを読み取り、Java を使用して同じ Excel ファイルの別のタブの特定の列に書き込みたいと考えています。

私のコードは次のようになります:

public  String [][] getExcelData() throws Exception{

String [][] tabArray = null;

            FileInputStream fi = new FileInputStream("C:\\SCE docs\\Automation\\CustomerAccount_Information.xls"); 
            HSSFWorkbook myWB = new HSSFWorkbook(fi); 
            HSSFSheet mySheet = myWB.getSheetAt(0); 

            FormulaEvaluator evaluator = myWB.getCreationHelper().createFormulaEvaluator();

            xRows = mySheet.getLastRowNum()+1; 
            xCols = mySheet.getRow(0).getLastCellNum(); 


            tabArray = new String [xRows][xCols]; 

            for (int i=0;i<xRows;i++) 
            { 
            HSSFRow row = mySheet.getRow(i); 
            for (int j=3;j<xCols;j++) 
            { 
                HSSFCell cell = row.getCell(j); 
                CellValue cellValue = evaluator.evaluate(cell);
                String value = evaluateFormula(cellValue);
                tabArray[i][j]=value;

         }
            }
            return tabArray;

            }

private String evaluateFormula(CellValue cellValue) {
// TODO Auto-generated method stub

int type = cellValue.getCellType();

Object result = null;

switch (type) {

case HSSFCell.CELL_TYPE_BOOLEAN:
    result = cellValue.getBooleanValue();
     break;
 case HSSFCell.CELL_TYPE_NUMERIC:
     result = cellValue.getNumberValue();
     break;
 case HSSFCell.CELL_TYPE_STRING:
     result = cellValue.getStringValue();
     break;
 case HSSFCell.CELL_TYPE_BLANK:
     break;
 case HSSFCell.CELL_TYPE_ERROR:
     break;


 // CELL_TYPE_FORMULA will never happen
 case HSSFCell.CELL_TYPE_FORMULA: 
     break;
}

return result.toString();
}
            }

私が得ている出力は

 Cust Num null
 Cust Num CustAccNum
 Cust Num null
 Cust Num 2-23-456-7891
 Cust Num null
 Cust Num 2-00-006-7891
 Cust Num null
 Cust Num 2-03-456-7891
 Cust Num null
 Cust Num 2-00-234-5678
 Cust Num null
 Cust Num 2-00-023-4891
 Cust Num null
 Cust Num 2-00-234-7891
 Cust Num null
 Cust Num 2-00-345-6781

ヘルプが必要: オブジェクトの結果に対して初期化された null 値を表示したくありません。回避策を教えてください。

4

1 に答える 1

2

Java では、サードパーティのライブラリを使用してこれを実現できます。良いライブラリの 1 つは、Apache による POI です。詳細については、以下のリンクを参照してください。

アパッチ POI

Apache POI API の助けを借りて、ほぼすべての種類のオフィス ドキュメントを操作できます。

于 2013-08-14T19:06:47.690 に答える