Excelファイルからデータベースにデータをインポートする必要があります。これを行うには、選択したファイルの拡張子を確認します。
これは私のコードです:
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!");
}
}
しかし、私は常に以下を取得します。
Excelファイルを選択してください!
コードのどこに問題があるのかわかりません。誰か助けてください。
以下
_extension != Excel
_
あるべき
_!Excel.equals(extension)
_
または
_!Excel.equalsIgnoreCase(extension)
_
こちらもご覧ください
==
は、参照の等価性をテストします。値が等しいかどうかのテストには、.equals
を使用します。同等性テスト中にケースを無視する場合は、String#equalsIgnoreCase
を使用します。
別のこと:ひどく壊れていない限り、車輪を再発明しないでください。あなたの場合、Apache Commons ' FilenameUtils#isExtension を使用して拡張子を確認する必要があります。
if (extension != Excel){
JOptionPane.showMessageDialog(null, "Choose an Excel file!");
}
として使用する必要があります
if (!extension.equals(Excel)){
JOptionPane.showMessageDialog(null, "Choose an Excel file!");
}
そして
if (upload == "OK") {
JOptionPane.showMessageDialog(null,"Upload Successful!");
}
なので
if ("OK".equals(upload)) {
JOptionPane.showMessageDialog(null,"Upload Successful!");
}
Apache Commons Apiを使用してファイル拡張子を確認できます
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
使用する
Excel.equals(extension)
or
Excel.equalsIgnoreCase(extension)
!=シンボルの代わりにequals()メソッドを使用します。書くことを意味する
if (!(extension.equals(Excel))){..........}
私のプログラムでそれをやった
if(file_name.endsWith(".xls") || file_name.endsWith(".xlsx"))
// something works with file
どう?
if (filename.endsWith("xls"){
<blah blah blah>
}
?