Je dois importer des données d'un fichier Excel vers une base de données et pour ce faire, je souhaite vérifier l'extension du fichier choisi.
Voici mon code:
String filename = file.getName();
String extension = filename.substring(filename.lastIndexOf(".") + 1, filename.length());
String Excel = "xls";
if (extension != Excel) {
JOptionPane.showMessageDialog(null, "Choose an Excel file!");
}
else {
String filepath = file.getAbsolutePath();
JOptionPane.showMessageDialog(null, filepath);
String upload = UploadPoData.initialize(null, filepath);
if (upload == "OK") {
JOptionPane.showMessageDialog(null, "Upload Successful!");
}
}
Mais je reçois toujours:
Choisissez un fichier Excel!
Je ne trouve pas ce qui ne va pas avec mon code, quelqu'un pourrait-il m'aider?.
suivant
extension != Excel
devrait être
!Excel.equals(extension)
ou
!Excel.equalsIgnoreCase(extension)
Voir aussi
==
teste référentiellement l'égalité. Pour le test d'égalité des valeurs, utilisez .equals
. Utilisation String#equalsIgnoreCase
si vous souhaitez que le cas ne soit pas pris en compte lors du test d'égalité.
Autre chose: ne réinventez pas la roue, sauf si elle est très cassée. Dans votre cas, vous devez utiliser Apache Commons ' FilenameUtils # isExtension pour vérifier l'extension.
if (extension != Excel){
JOptionPane.showMessageDialog(null, "Choose an Excel file!");
}
doit être utilisé comme
if (!extension.equals(Excel)){
JOptionPane.showMessageDialog(null, "Choose an Excel file!");
}
Et
if (upload == "OK") {
JOptionPane.showMessageDialog(null,"Upload Successful!");
}
comme
if ("OK".equals(upload)) {
JOptionPane.showMessageDialog(null,"Upload Successful!");
}
Vous pouvez utiliser Apache Commons Api pour vérifier l'extension du fichier
String filename = file.getName();
if(!FilenameUtils.isExtension(filename,"xls")){
JOptionPane.showMessageDialog(null, "Choose an Excel file!");
}
http://commons.Apache.org/io/api-release/index.html?org/Apache/commons/io/package-summary.html
utilisation
Excel.equals(extension)
or
Excel.equalsIgnoreCase(extension)
utilisez la méthode equals () au lieu des symboles ! = dans votre cas. Je veux dire écrire
if (!(extension.equals(Excel))){..........}
Dans mon programme, je l'ai fait
if(file_name.endsWith(".xls") || file_name.endsWith(".xlsx"))
// something works with file
Que diriez-vous
if (filename.endsWith("xls"){
<blah blah blah>
}
?