关闭

Java Excel API(書き込み機能(1))

986人阅读 评论(0) 收藏 举报
開始/終了処理

jxl.Workbookのメソッドを使用します。

新規にExcelファイルを作成する。
java.io.Fileインスタンスから作成する。
File excelFile = new File("path/to/excel.xls");
jxl.write.WritableWorkbook workbook = Workbook.createWorkbook(excelFile);


java.io.OutputStreamインスタンスから作成する。
OutputStream output = new java.io.FileOutputStream("path/to/excel.xls");
jxl.write.WritableWorkbook workbook = Workbook.createWorkbook(output);


既存のExcelファイルから操作用ファイルを作成する。
java.io.Fileインスタンスから作成する。
// 既存のExcelファイルを読み込む
File originalExcelFile = new File("path/to/original/excel.xls");
jxl.Workbook originalExcel = Workbook.getWorkbook(originalWorkbook);
// 新規作成ファイル用Fileインスタンスを生成
File newExcelFile = new File("path/to/new/excel.xls");
// 書き込み用インスタンスを生成
jxl.write.WritableWorkbook workbook =
Workbook.createWorkbook(newExcelFile, originalExcel);


java.io.OutputStreamインスタンスから作成する。
// 既存のExcelファイルを読み込む
File originalExcelFile = new File("path/to/original/excel.xls");
jxl.Workbook originalExcel = Workbook.getWorkbook(originalWorkbook);
// 新規作成ファイル用OutputStreamインスタンスを生成
OutputStream output =
new java.io.FileOutputStream("path/to/new/excel.xls");
// 書き込み用インスタンスを生成
jxl.write.WritableWorkbook workbook =
Workbook.createWorkbook(output, originalExcel);


保存してExcelファイルの操作を終了する。
// 書き込み用にインスタンスを生成
File excelFile = new File("path/to/excel.xls");
jxl.write.WritableWorkbook workbook = Workbook.createWorkbook(excelFile);

/*
* 書き込み処理
*/

// 内容を保存
workbook.write();
// 終了
workbook.close();



ワークブックの操作

jxl.writeWritableWorkbookを使用します。
以下変数workbookをWritableWorkbookのインスタンスとします。

ワークブック内のシート数を確認する。
int count = workbook.getNumberOfSheets();


内容を書き込むためにシートのインスタンスを取得する。
// インデックスを指定して取得する
int index = 0;
jxl.write.WritableSheet sheetByIndex = workbook.getSheet(index);

// シート名を指定して取得する
String sheetName = "Sheet1";
jxl.write.WritableSheet sheetByName = workbook.getSheet(sheetName);

// 全てのシートを取得する
jxl.write.WritableSheet[] sheets = workbook.getSheets();


※ シートの操作はこちらを参照してください。

既存のシートの内容を別シートにコピーする。

コピー対象のシートをインデックスで指定
// 1シート目の内容を3シート目にコピーする。名称を変更
workbook.copySheet(0, "コピーされたシート", 2);


コピー対象のシートを名前で指定
// シート名「Sheet1」の内容を3シート目にコピーする。名称を変更
workbook.copySheet("Sheet1", "コピーされたシート", 2);


ワークブック内に新規シートを作成する。
// 2シート目に新規シートを作成する
jxl.write.WritableSheet newSheet = workbook.createSheet("newSheet", 1);


シートの順序を変更する。
// 1シート目のシートを3シート目に移動する
jxl.write.WritableSheet movedSheet = workbook.moveSheet(0, 2);


シートを削除する。
// 1シート目を削除する。
workbook.removeSheet(0);


登録された名前定義を取得する。
※ 「挿入->名前->定義」で登録された名前定義名称を取得します。
String[] rangeNames = workbook.getRangeNames();


名前定義されたセル範囲を取得する。
String rangeName = "area1";
Range[] ranges = workbook.findByName(rangeName);

※ 取得できたセル範囲に対する書き込みはできません。

シートの操作

jxl.write.WritableSheetを使用します。
WritableSheetインスタンスの取得はこちらを参照してください。
以下変数sheetをWritableSheetのインスタンスとします。


シート名を設定する。
String sheetName = "Sheet1";
sheet.setName(sheetName);


シートに行を追加する。
10行追加する
for (int i = 0; i < 10; i++) {
sheet.insertRow(i);
}


シートに列を追加する。
10列追加する
for (int i = 0; i < 10; i++) {
sheet.insertColumn(i);
}


行を削除する。
1行目を削除する
sheet.removeRow(0);


列を削除する。
1列目を削除する
sheet.removeColumn(0);


内容を書き込むためにセルのインスタンスを取得する。
// 行、列を指定してセルを取得
int column = 0;
int row = 0;
jxl.write.WritableCell cell = sheet.getWritableCell(column, row);

// セル名を指定して取得
String cellName = "A1";
jxl.write.WritableCell cellByName = sheet.getWritableCell(cellName);

※ セルの操作は次回に記述します。

値、フォーマットを設定したセルをシートに追加する。
WritableCell cell = null;

/*
* 値、フォーマットを設定
* 設定方法は次回に記述します
*/

sheet.addCell(cell);



シート内のページ切り替え位置を設定する。
int breakPosition = 10;
// 列の区切り位置を取得
sheet.addRowPageBreak(10);


行の高さを設定する。
// 設定対象行番号
int row = 3;
// 高さ
int height = 20;
sheet.setRowView(row, height);

// 行を折りたたむ場合
row = 5;
boolean collapse = true;
sheet.setRowView(row, collapse);

// 折りたたみ、高さを合わせて設定
row = 10;
collapse = false;
sheet.setRowView(row, height, collapse);



列の幅を設定する。
// 設定対象列番号
int column = 3;
// 幅
int width = 20;
sheet.setColumnView(column, width);


列のフォーマットを設定する。
// 設定対象列番号
int column = 3;
// セルのフォーマット
CellView cellView = new CellView();

/*
* 値、フォーマットを設定
* 設定方法は次回に記述します
*/


sheet.setColumnView(column, cellView);

※ 行単位での設定はできません。

セルを結合する。
// 結合開始セル位置
int fromRow = 0;
int fromColumn = 1;
// 結合終了セル位置
int toRow = 3;
int toColumn = 3;
jxl.Range mergedCells = sheet.mergeCells(fromColumn, fromRow, toColumn, toRow);


セルの結合を解除する。
// 結合位置のRangeインスタンスを取得
Range[] mergedCells = sheet.getMergedCells();
for (int i = 0; i < sheet.getMergedCells.length; i++) {
sheet.unmergeCells(mergedCells[i]);
}


シート内のイメージを操作する。
// イメージ数の取得
int imageCount = sheet.getNumberOfImages();

for (int i = 0; i < imageCount; i++) {
// 設定されたイメージの取得
jxl.write.WritableImage image = sheet.getImage(i);
// 設定されたイメージの削除
sheet.removeImage(image);
}

// イメージの新規追加 ※WritableImageのインスタンス化は次回に記述します
jxl.write.WritableImage image =
new jxl.write.WritableImage(0, 0, 100, 100, new File("path/to/image/file"));
sheet.addImage(image);


シート内のハイパーリンクを操作する。
// 設定済みリンクの取得
jxl.write.WritableHyperLink[] links = sheet.getWritableHyperlinks();

for (int i = 0; i < links.length; i++) {
// 設定されたリンクの削除
sheet.removeHyperlink(links[i]);
// リンクのみを削除し、内容は残す場合
sheet.removeHyperlink(links[i], true);
}

// ハイパーリンクの新規追加 ※WritableHyperlinkのインスタンス化は次回に記述します
jxl.write.WritableHyperlink link =
new jxl.write.WritableHyperlink(0, 0, new File("path/to/linked/file"));
sheet.addHyperlink(link);
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:196407次
    • 积分:2239
    • 等级:
    • 排名:第16839名
    • 原创:4篇
    • 转载:187篇
    • 译文:0篇
    • 评论:2条
    最新评论