0

必要なのは、シート名の文字列を比較または検索することです..

つまり、Excel ファイルには複数のシートがある可能性がありますが、特定の文字列を持つシートのみが

「FORMATO SIVE 04」という名前のシートのみが処理されます...

私は狂ったようにデバッグしていて、混乱しています...私のコードはこのようなものです

            Workbook eworkbook = WorkbookFactory.create(Archivo);

            int totalsheet = eworkbook.getNumberOfSheets();

            System.out.println("fuerawhile"+totalsheet);
            sheetName=new String[totalsheet];

            //String nombrehoja = eworkbook.getSheetName(0).toString();                 
            //System.out.println(nombrehoja);

            Sheet sheet = null;

            while(i<totalsheet){
                sheetName[i] = eworkbook.getSheetName(i);
                System.out.println("Antes IF :" + sheetName[i]);
                FORMATO = sheetName[i];
                if(FORMATO == "FORMATO SIVE 04"){
                    flag = true;
                }

                if(flag){
                    System.out.println("dentroIF : " + sheetName[i]);
                    sheet = eworkbook.getSheet(sheetName[i].toString());
                    System.out.println("Exito");
                }
                else if (!flag){
                    System.out.println("Error");
                }
                System.out.println("dentrowhile : " + sheetName[i]);
                i++;
            }

しかし、それは私に真実を与えません:( ここに画像の説明を入力

誰かが何か考えがありますか?

これは簡単すぎると思いますが、私はこれに多くの時間を費やしており、正しいと思います:(

前もって感謝します

4

1 に答える 1

2

Java では、Strings を使用して比較すべきではありません==(インターン ロジックをテストしたい場合を除きます)。好む:

if( "FORMATO SIVE 04".equals(FORMATO) ) {
....

FORMATOになることはないと確信している場合はnull、より読みやすい形式を使用することもできます。

if( FORMATO.equals("FORMATO SIVE 04") ) {
于 2013-08-28T23:51:08.363 に答える