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

In Java, Strings should never be compared using == (unless you want to test intern logic, maybe). Prefer:

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

If you are sure FORMATO will never be null, you can also use the more legible form:

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