-1

以下のコードは、大きな Excel ファイルを読み取るためのものです。「org.apache.poi.hssf.usermodel.HSSFCell.typeMismatch の数値セルからテキスト値を取得できません」というエラーが発生しました。これを修正するにはどうすればよいですか。列 1 は数値、列 2 は文字列値です。

    import org.apache.poi.hssf.usermodel.HSSFWorkbook;   
    import org.apache.poi.hssf.usermodel.HSSFSheet;   
    import org.apache.poi.hssf.usermodel.HSSFRow;   
    import org.apache.poi.hssf.usermodel.HSSFCell;   
    import java.io.FileInputStream;   
    import java.io.IOException;   
    import java.util.Iterator;   
    import java.util.Vector;   

    public class ReadExcel {   

        public static void main(String[] args) throws Exception {   

            String filename = "C:/Documents and Settings/oemiola/My Documents/Defects_Input.xls";   
            FileInputStream fis = null;   

            try {   
                fis = new FileInputStream(filename);   
                HSSFWorkbook workbook = new HSSFWorkbook(fis);   
                HSSFSheet sheet = workbook.getSheetAt(0);   
                Iterator rowIter = sheet.rowIterator();    

                while(rowIter.hasNext()){   
                    HSSFRow myRow = (HSSFRow) rowIter.next();   
                    Iterator cellIter = myRow.cellIterator();   
                    Vector<String> cellStoreVector=new Vector<String>();   
                    while(cellIter.hasNext()){   
                        HSSFCell myCell = (HSSFCell) cellIter.next();   
                        String cellvalue = myCell.getStringCellValue();   
                        cellStoreVector.addElement(cellvalue);   
                    }   
                    String firstcolumnValue = null;   
                    String secondcolumnValue = null;   

                    int i = 0;   
                    firstcolumnValue = cellStoreVector.get(i).toString();    
                    secondcolumnValue = cellStoreVector.get(i+1).toString();   

                    insertQuery(firstcolumnValue,secondcolumnValue);   
               }   

            } catch (IOException e) {   

                e.printStackTrace();   

            } finally {   

                if (fis != null) {   

                    fis.close();   
                }   
            }   

        }   

        private static void insertQuery(String firstcolumnvalue,String secondcolumnvalue) {   

            System.out.println(firstcolumnvalue +  " "  +secondcolumnvalue);   


        }   

    }  
4

1 に答える 1

0

Cell#getCellTypeセルに数値または文字列があるかどうかを判断するために使用します。数値の場合は、getNumericCellValue代わりに を使用しgetStringCellValueます。

于 2013-07-01T19:20:35.983 に答える