web-dev-qa-db-fra.com

Erreur de syntaxe sur le (s) jeton (s), construction (s) mal placée (s)

Comment corriger cette erreur ---> Erreur de syntaxe sur le ou les jetons, construction (s) mal placée (s) L'erreur se situe à la ligne indiquée ci-dessous. Remarque: Ce code a été copié sur le Web. et essayer de le faire fonctionner comme un outil d'apprentissage J'utilise Eclipse Merci!

import Java.io.File;
import Java.io.FileOutputStream;
import Java.util.Map;
import Java.util.Set;
import Java.util.TreeMap;

import org.Apache.poi.ss.usermodel.Cell;
import org.Apache.poi.ss.usermodel.Row;
import org.Apache.poi.xssf.usermodel.XSSFSheet;
import org.Apache.poi.xssf.usermodel.XSSFWorkbook;

public class EcellTest22 {
     //Blank workbook
    XSSFWorkbook workbook = new XSSFWorkbook();

    //Create a blank sheet
    XSSFSheet sheet = workbook.createSheet("Employee Data");

    //This data needs to be written (Object[])
    Map<String, Object[]> data = new TreeMap<String, Object[]>();
     //
    data.put("1", new Object[]{"ID","NAME", "LASTNAME"}); <--Syntax error on token(s), misplaced construct(s) 


    data.put("2", new Object[]{1, "Amit", "Shukla"});
    data.put("3", new Object[]{2, "Lokesh", "Gupta"});
    data.put("4", new Object[]{3, "John", "Adwards"});
    data.put("5", new Object[]{4, "Brian", "Schultz"});

    //Iterate over data and write to sheet
    Set<String> keyset = data.keySet();

    int rownum = 0;
    for (String key : keyset) 
    {
        //create a row of excelsheet
        Row row = sheet.createRow(rownum++);

        //get object array of prerticuler key
        Object[] objArr = data.get(key);

        int cellnum = 0;

        for (Object obj : objArr) 
        {
            Cell cell = row.createCell(cellnum++);
            if (obj instanceof String) 
            {
                cell.setCellValue((String) obj);
            }
            else if (obj instanceof Integer) 
            {
                cell.setCellValue((Integer) obj);
            }
        }
    }
    try 
    {
        //Write the workbook in file system
        FileOutputStream out = new FileOutputStream(new File("C:\\Documents and Settings\\admin\\Desktop\\imp data\\howtodoinjava_demo.xlsx"));
        workbook.write(out);
        out.close();
        System.out.println("howtodoinjava_demo.xlsx written successfully on disk.");
    } 
    catch (Exception e)
    {
        e.printStackTrace();
    }

    }

}
5
user3277243

Vous devez placer toutes les instructions après les déclarations dans un bloc de code, par exemple. méthode plutôt que le bloc de classe. Logiquement, il est probablement logique de placer toutes les instructions dans le bloc de code, mais les instructions non déclaratives doivent être incluses dans le nouveau bloc.

private void processFile() {
    data.put("1", new Object[]{"ID","NAME", "LASTNAME"}); // <--Syntax error  
     ...//snip
  } catch (Exception e) {
     e.printStackTrace();
  } 
}
7
Reimeus

Placez tout votre code dans une méthode principale:

public static void main(String[] args) {
        //All of your code goes here

}

Les instructions (cela n'inclut pas les déclarations) doivent être exécutées à l'intérieur d'un bloc. Il semble que vous meniez un test sur du code et que celui-ci ne soit pas censé être un objet réel dans votre code; vous devez donc le placer dans la méthode principale.

2
Kevin Bowersox

Problème résolu. J'ai créé un nouveau projet dans Eclipse, ajouté le POI (jar) aux bibliothèques et l'erreur de syntaxe n'est plus affichée.

1
user3277243

Coller essayer et attraper le bloc dans n'importe quelle méthode . La question ci-dessus concerne votre bloc try uniquement dans la classe. C’est pourquoi votre message d’erreur de syntaxe get Syntax ou vous informe en profondeur sur try 

public void yourMethod(){    
        try 
         {
           //Write the workbook in file system
           FileOutputStream out = new FileOutputStream(new File("C:\\Documents and Settings\\admin\\Desktop\\imp data\\howtodoinjava_demo.xlsx"));
                    workbook.write(out);
                    out.close();
                    System.out.println("howtodoinjava_demo.xlsx written successfully on disk.");
                } 
                catch (Exception e)
                {
                    e.printStackTrace();
            }
        }
0
Ved Prakash