- PR -

Javaでのエラー

1
投稿者投稿内容
tricha3859
会議室デビュー日: 2007/10/31
投稿数: 2
投稿日時: 2007-10-31 15:10
初心者の者です。
Javaをしていたらコンパイル時にエラーになってしまいました。
本を参考にしていたのですがどうしてもわからないので
ご教授お願いします。

《バージョン》
jdk1.5.0_04、Tomcat5.1
《エラー内容》
パッケージ org.apache.poi.hssf.usermodelは存在しません
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;

package to.msn.wings;

import java.io.FileOutputStream;


《ソース》-PoiSample.java-
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;

public class PoiSample {
public static void main(String[] args) {
try{
//新規ワークブックを作成する
HSSFWorkbook wb = new HSSFWorkbook();
FileOutputStream fileOut
= new FileOutputStream("C:\\PoiSampleBook.xls");
//新規ワークシートを作成する
HSSFSheet sheet1 = wb.createSheet();
HSSFSheet sheet2 = wb.createSheet();
//作成したシート名を変更
//日本語シート名を指定する場合には
//エンコーディング設定は必須
wb.setSheetName(0,"sheet1");
wb.setSheetName(1
,"シート2",HSSFWorkbook.ENCODING_UTF_16);
//行オブジェクトの作成(行番号は0スタート)
HSSFRow row2 = sheet1.createRow(1);
//セルオブジェクトの作成(セル番号は0スタート)
//引数はshort型でキャストしなければならない点に注意
HSSFCell cellB2 = row2.createCell((short)1);
HSSFCell cellC2 = row2.createCell((short)2);
//セルに値を設定する
cellB2.setCellValue("B2");
//セルに日本語の値を設定する
//日本語の値を指定する場合には
//エンコーディング設定は必須
cellC2.setEncoding(HSSFCell.ENCODING_UTF_16);
cellC2.setCellValue("C2日本語");
//作成したワークブックを保存する
wb.write(fileOut);
fileOut.close();

}catch(Exception e){
e.printStackTrace();

}
}
}


クラスパスは":\Program Files\poi-bin-3.0.1-FINAL-20070705\poi-3.0.1-FINAL"と入力しました。
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2007-10-31 15:49
引用:

tricha3859さんの書き込み (2007-10-31 15:10) より:
クラスパスは"rogram Filespoi-bin-3.0.1-FINAL-20070705poi-3.0.1-FINAL"と入力しました。


 POIのライブラリーってJARファイルだと思うんですが・・・。
jama
常連さん
会議室デビュー日: 2006/09/12
投稿数: 45
投稿日時: 2007-10-31 19:43
参考にされている本は、POI2.5で書かれていると思います。
最初のうちは、POI2.5を使用してはどうですか?
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2007-11-01 14:07
・jarの指定を正しくする。
・最初の投稿以外にもエラーがあるので修正

すれば、3.0.1でもコンパイルはとおりましたよ。

C:\java\poi3.0.1>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 18AD-02BD です

C:\java\poi3.0.1 のディレクトリ

2007/11/01 14:02 <DIR> .
2007/11/01 14:02 <DIR> ..
2007/06/28 05:41 909,270 poi-3.0.1-FINAL-20070705.jar
2007/06/28 05:41 59,349 poi-contrib-3.0.1-FINAL-20070705.jar
2007/06/28 05:41 859,615 poi-scratchpad-3.0.1-FINAL-20070705.jar
2007/11/01 14:02 1,438 PoiSample.java
4 個のファイル 1,829,672 バイト
2 個のディレクトリ 90,838,315,008 バイトの空き領域

C:\java\poi3.0.1>set CLASSPATH
CLASSPATH=.;.\poi-scratchpad-3.0.1-FINAL-20070705.jar;.\poi-3.0.1-FINAL-20070705
.jar;.\poi-contrib-3.0.1-FINAL-20070705.jar

C:\java\poi3.0.1>type PoiSample.java
// 《ソース》-PoiSample.java-
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;

import java.io.*; // 追加

public class PoiSample {
public static void main(String[] args) {
try{
//新規ワークブックを作成する
HSSFWorkbook wb = new HSSFWorkbook();
FileOutputStream fileOut
= new FileOutputStream("C:\\PoiSampleBook.xls");
//新規ワークシートを作成する
HSSFSheet sheet1 = wb.createSheet();
HSSFSheet sheet2 = wb.createSheet();
//作成したシート名を変更
//日本語シート名を指定する場合には
//エンコーディング設定は必須
wb.setSheetName(0,"sheet1");
wb.setSheetName(1
,"シート2",HSSFWorkbook.ENCODING_UTF_16);
//行オブジェクトの作成(行番号は0スタート)
HSSFRow row2 = sheet1.createRow(1);
//セルオブジェクトの作成(セル番号は0スタート)
//引数はshort型でキャストしなければならない点に注意
HSSFCell cellB2 = row2.createCell((short)1);
HSSFCell cellC2 = row2.createCell((short)2);
//セルに値を設定する
cellB2.setCellValue("B2");
//セルに日本語の値を設定する
//日本語の値を指定する場合には
//エンコーディング設定は必須
cellC2.setEncoding(HSSFCell.ENCODING_UTF_16);
cellC2.setCellValue("C2日本語");
//作成したワークブックを保存する
wb.write(fileOut);
fileOut.close();

}catch(Exception e){
e.printStackTrace();

}
}
}

C:\java\poi3.0.1>javac PoiSample.java
注: PoiSample.java は推奨されない API を使用またはオーバーライドしています。
注: 詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてくだ
さい。

C:\java\poi3.0.1>dir *.class
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 18AD-02BD です

C:\java\poi3.0.1 のディレクトリ

2007/11/01 14:03 1,238 PoiSample.class
1 個のファイル 1,238 バイト
0 個のディレクトリ 90,838,335,488 バイトの空き領域
1

スキルアップ/キャリアアップ(JOB@IT)