はじめに
Javaでエクセルファイルの読込をする方法を説明します。
かなりつまづきましたが、なんとかうまくいったのでこの方法を忘れないようにメモ代わりとして。
ただし、この方法はいろいろ試していたらなんか上手くいった程度のものなので間違っているかもしれないことをご了承ください。
1.ApachePOIのダウンロード
公式サイトからApachePOIをダウンロードします。
ダウンロードしたZipファイルを解凍して適当なフォルダに入れます。
2.Eclipseのビルド・パスの設定
・何かしらのプロジェクトを選択した状態で右クリック
>プロパティ>Javaのビルドパス
・クラスパスを選択して右の外部JARの追加
をおす
・ポップアップ画面からさっきダウンロードしたのを全部ここにつっこみます。1
3.もう一個jarファイルを追加する
このサイトからlog4j-core
をダウンロードして先ほど同様にEclipseの設定までします。
これを入れないと上手く動かないようです。
好きなバージョンを選んで...
jarファイルをダウンロードして先ほど同様にEclipseの設定までします。
これで準備は完了です。
4.読み込むためのエクセルファイルを準備する
中身は何でもよいので、適当に作って、名前を付けて保存します。
自分はreadTest.xlsxというファイル名です。
5.コードを書く
コードもこのサイトを参考にしていますが、変えている箇所もあります。
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
public class Test {
public static void main(String[] args) throws EncryptedDocumentException, IOException{
Workbook workbook = null;
try {
workbook = WorkbookFactory.create(new FileInputStream("ファイルのパスを書く(パス取得方法後述)"));
Sheet sheet = workbook.getSheetAt(0);
Row row0 = sheet.getRow(0); //一行目
Row row2 = sheet.getRow(2); //3行目
Cell cell0 = row0.getCell(0); //a1
Cell cell1 = row0.getCell(1); //b1
Cell cell2 = row2.getCell(2); //C3
System.out.println(cell0.getStringCellValue());
System.out.println(cell1.getNumericCellValue());
System.out.println(cell2.getStringCellValue());
System.out.println("完了");
}catch(IOException e) {
System.out.println(e.toString());
}finally {
try {
if(workbook != null) {
workbook.close();
}
}catch(IOException e) {
System.out.println(e.toString());
}
}
}
}
パスの取得方法
Windowsの場合は、
ファイルを選択した状態で、ホームタブの赤丸で囲ったボタンを押すとパスがクリップボードにコピーされます。
Macとかの場合は分からないので検索してください。。
ちょっと注意
自分がそのままパスをコピペして実行すると、無効なエスケープシーケンスですってEclipseに怒られてしまいました。
どうも、パスのバックスラッシュや¥マークを2つ重ねる必要があるようです。
お気を付けください。
例)
そのままコピペするとこうなるところを...
"C:\Users\Username\Saved Pictures\5.png"
こうする
"C:\\Users\\Username\\Saved Pictures\\5.png"
6.実行する
実行結果はこんな感じになります。
テスト用
123.0
Hello
完了
エクセル上に数字123を書いたセルは、文字列ではなく、数値で取得するようにしているので、「123.0」と表示されていると思われます。
終わりに
以上で説明は終わりです。
自分が上手くいった方法をまとめただけですが、誰かの助けになれば幸いです。