繁体   English   中英

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

[英]Can't compare sheetname with string value

我需要比较或搜索工作表名称中的字符串。

我的意思是,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++;
            }

但这并没有给我真实的:( 在此处输入图片说明

有人有什么主意吗?

我认为这太容易了,但是我在这方面花了很多时间,我认为我是正确的:(

提前致谢

在Java中,永远不要使用==比较String (除非您可能想测试内部逻辑)。 首选:

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

如果您确定FORMATO永远不会为null ,那么还可以使用更清晰的形式:

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

暂无
暂无

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

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