简体   繁体   English

无法将工作表名称与字符串值进行比较

[英]Can't compare sheetname with string value

What i need is to compare or search for a string in a sheet name.. 我需要比较或搜索工作表名称中的字符串。

I mean, the excel file might have more than one sheet, but only the sheets with a specific string let said 我的意思是,excel文件可能有多个工作表,但是只有具有特定字符串的工作表才可以说

only sheets named "FORMATO SIVE 04" are going to be processed... 仅处理名为“ FORMATO SIVE 04”的工作表...

I'm debugging like crazy and I'm getting confused... my code it's like this 我像疯了似的调试着,我很困惑...我的代码就是这样

            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++;
            }

but it doesnt give me true :( 但这并没有给我真实的:( 在此处输入图片说明

does anybody has any idea? 有人有什么主意吗?

I think this is too easy but I'm having a lot of time in this and i think I'm right :( 我认为这太容易了,但是我在这方面花了很多时间,我认为我是正确的:(

Thanks in advance 提前致谢

In Java, String s should never be compared using == (unless you want to test intern logic, maybe). 在Java中,永远不要使用==比较String (除非您可能想测试内部逻辑)。 Prefer: 首选:

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

If you are sure FORMATO will never be null , you can also use the more legible form: 如果您确定FORMATO永远不会为null ,那么还可以使用更清晰的形式:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM