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();
}
}
}
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();
}
}
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.
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.
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();
}
}