質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

5624閲覧

【Apach POI】圧縮していないexcelファイル読み込み時にIOException(org/apache/commons/compress/archivers/zip/ZipFile)が発生する

退会済みユーザー

退会済みユーザー

総合スコア0

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2018/09/10 05:20

編集2018/09/10 06:42

前提・実現したいこと

指定するディレクトリに存在するexcelファイルを読み込み、DBの値を書き込みしたいです。
よろしくお願いいたします。

発生している問題・エラーメッセージ

例外が発生しています。

stackTrace

1java.io.IOException: org/apache/commons/compress/archivers/zip/ZipFile 2Caused by: java.lang.NoClassDefFoundError: org/apache/commons/compress/archivers/zip/ZipFile 3 at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:298) 4 at org.apache.poi.xssf.usermodel.XSSFWorkbookFactory.createWorkbook(XSSFWorkbookFactory.java:129) 5 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 6 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 7 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 8 at java.lang.reflect.Method.invoke(Unknown Source) 9 at org.apache.poi.ss.usermodel.WorkbookFactory.createWorkbook(WorkbookFactory.java:314) 10 ... 50 more 11Caused by: java.lang.ClassNotFoundException: org.apache.commons.compress.archivers.zip.ZipFile 12 at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1275) 13 at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1104) 14 ... 57 more

zipファイルではないため、「?」という状態です。
「zipファイルだから読み込めないよ」と言っているのかと思っています。

改めてzipファイルではないことを確認して、対象のファイルに設置しなおしましたが、変わりませんでした。

jarも全て追加し、パスも通しています。
jar

該当のソースコード

Java

1(省略) 2 3String filePath = "C:\work\template\daicho.xlsx"; 4 5try { 6 // 変更元を取り込み 7 FileInputStream fileIn = new FileInputStream(filePath); 8 // ワークブック読み込み 9 Workbook book = null; 10 book = WorkbookFactory.create(fileIn); // ここで例外発生 11} 12 13(省略) 14

補足情報(FW/ツールのバージョンなど)

Java 1.8
poi 4.0.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

xlsxファイルは標準でzip圧縮されているはずです。(xlsxファイルの拡張子をzipにして、展開してみるとわかります。)

で、今回の件ですが、試してないですが、

java.lang.NoClassDefFoundError: org/apache/commons/compress/archivers/zip/ZipFile

とあるので、この辺が足りないのではないでしょうか?


追記

依存関係はこんな感じのようです。

イメージ説明

投稿2018/09/10 07:13

編集2018/09/10 08:08
webarata3

総合スコア367

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/09/10 07:22

webarata3様 はじめまして。ご回答ありがとうございます。 >xlsxファイルは標準でzip圧縮されているはずです。 常識がなく、大変失礼いたしました、、、初めて知りました。それだとエラーの内容も納得しました。 ダウンロードして使ってみます。ありがとうございました!
退会済みユーザー

退会済みユーザー

2018/09/10 07:33

commons-compressをダウンロードし、poiのversionを4.0に戻したところ例外が発生することなく無事に処理が完了できました。とても助かりました。ありがとうございます。
webarata3

2018/09/10 08:08

参考までに依存関係を追加してみました。
退会済みユーザー

退会済みユーザー

2018/09/10 08:15

ありがとうございます。どうして3.9ではcommons-compressが必要なかったのか等含め、jarに関する知識をもっとつけようと思います。
guest

0

poiのversionを3.9に下げたところ、解決しました。
4.0は9月7日に公開されたばかりのようですので参考資料があまりなく探り探りだったのですが、なにか決まりごとなどが変わってしまったのでしょうか。
一旦、クローズします。

投稿2018/09/10 06:58

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/09/10 07:35

webarate3様にコメントをいただきまして、poiのversionを4.0に戻しても処理が完了するように、解決できました。 commons-compressをダウンロードすることが必要でした。
退会済みユーザー

退会済みユーザー

2018/09/10 07:36

クローズしてしまっていたため、webarate3様をベストアンサーとして選ぶことができず、申し訳ありません。。
y_waiwai

2018/09/10 07:38

そこらへんはあとで修正できますよ
退会済みユーザー

退会済みユーザー

2018/09/10 07:47

未解決にするボタンがありました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問