各種サンプル

AppオブジェクトとWorkBookオブジェクトの使用例

以下のコードは、Appオブジェクトの各種ユーティリティーの使用方法を示し、ExcelのWorkBookを新規作成し、通常保存、別名保存、パスワード付き保存を行うサンプルです。

JUnitを利用しています。

package hoge;

import static org.junit.Assert.assertTrue;

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;

import com.osboffice.osbxl.AppWrapper;
import com.osboffice.osbxl.WorkBookWrapper;
import com.osboffice.osbxl.WorkSheetWrapper;
import com.osboffice.osbxl.dto.DateTimeObjectWrapper;
import com.osboffice.osbxl.enums.*;

import org.junit.Test;

public class SampleWorkBook {

    @Test
    public void workbookSample() throws IOException, Exception {

        try {
            Files.deleteIfExists(FileSystems.getDefault().getPath("./create_workbook.xlsx"));
        } catch (IOException e) {
            assertTrue(false);
            return;
        }
        try {
            Files.deleteIfExists(FileSystems.getDefault().getPath("./create_workbook_2.xlsx"));
        } catch (IOException e) {
            assertTrue(false);
            return;
        }
        try {
            Files.deleteIfExists(FileSystems.getDefault().getPath("./create_workbook_2_password.xlsx"));
        } catch (IOException e) {
            assertTrue(false);
            return;
        }

        System.out.println("start");

        // Appインスタンス生成
        AppWrapper app = new AppWrapper();

        // 3をA1表記に変換します
        String col3 = app.convertFromColumnNumber(3);
        System.out.println(col3);

        // (3,3)をA1表記に変換します。
        String rowcol_33 = app.convertFromRowColNumber(3, 3);
        System.out.println(rowcol_33);

        // (3,3)を絶対参照のA1表記に変換します。
        String rowcol_33_2 = app.convertFromRowColNumber(3, 3, true, true);
        System.out.println(rowcol_33_2);

        // (3,3,4,3)をA1C1表記に変換します。
        String rowcol_range_33_44 = app.convertFromRowColNumber2(3, 3, 4, 4);
        System.out.println(rowcol_range_33_44);

        // (3,3,4,3)を絶対参照のA1C1表記に変換します。
        String rowcol_range_33_44_2 = app.convertFromRowColNumber2(3, 3, 4, 4, true, true, true, true);
        System.out.println(rowcol_range_33_44_2);

        // 日付時刻オブジェクトを作成します。
        DateTimeObjectWrapper ymdhms = new DateTimeObjectWrapper();
        ymdhms.setYMD(2023, 12, 1);
        ymdhms.setHMS(13, 25, 35);

        // 日付時刻オブジェクトをExcel内部のシリアル値に変換します。
        double serial = app.getNumericValue(ymdhms);
        System.out.println(serial);

        // ワークブックをフォントとフォントサイズを指定して作成します。
        WorkBookWrapper wb = app.createWorkBook("create_workbook.xlsx", XlFont.YU_MINCHO, 12.0);

        // ワークシートを追加します。
        WorkSheetWrapper ws = wb.addWorkSheet("Sheet2");

        // セル領域A2:E5に数値1.0を入力します。
        ws.getRange("A2:E5").setNumberValue(1.0);

        // ワークシートを削除します。
        wb.deleteWorkSheet("Sheet1");

        // ワークブックを保存します。
        wb.save();

        // ワークブックを別名で保存します。
        wb.saveAs("create_workbook_2.xlsx");

        // ワークブックを別名、パスワード付きで保存します。
        wb.saveAs("create_workbook_2_password.xlsx", "サンプル");

        // ワークブックを閉じます。
        wb.close();

        // 既存のワークブックを開きます。
        wb = app.openWorkBook("create_workbook_2.xlsx");

        // セル領域A1に日付時刻オブジェクトをセル書式とともに設定します。
        wb.openWorkSheet("Sheet2").getCells(1, 1).setDateValue(ymdhms, false, "yyyy/mm/dd");

        // ワークブックをパスワード付きで保存します。
        wb.save("サンプル");

        // ワークブックを閉じます。
        wb.close();

        System.out.println("end");
    }
}

セル範囲のセル装飾の使用例

以下のコードは、各種セル装飾(フォント、罫線、塗りつぶし、セル配置、セルの保護、セルの書式)やメモ、コメントや行や列のサイズ変更、行のアウトラインレベル設定、ワークシートのページ設定を行うサンプルです。

JUnitを利用しています。

package example;

import static org.junit.Assert.assertTrue;

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.util.List;

import com.osboffice.osbxl.AppWrapper;
import com.osboffice.osbxl.RangeWrapper;
import com.osboffice.osbxl.WorkBookWrapper;
import com.osboffice.osbxl.WorkSheetWrapper;
import com.osboffice.osbxl.dto.ColorObjectWrapper;
import com.osboffice.osbxl.dto.CommentObjectWrapper;
import com.osboffice.osbxl.dto.DateTimeObjectWrapper;
import com.osboffice.osbxl.dto.FontObjectWrapper;
import com.osboffice.osbxl.dto.HeaderObjectWrapper;
import com.osboffice.osbxl.dto.HyperlinkObjectWrapper;
import com.osboffice.osbxl.dto.PageSetupObjectWrapper;
import com.osboffice.osbxl.dto.PatternFillObjectWrapper;
import com.osboffice.osbxl.enums.*;

import org.junit.Test;

public class SampleCellsTest {

    @Test
    public void cellsSample() throws IOException, Exception {

        try {
            Files.deleteIfExists(FileSystems.getDefault().getPath("./cells.xlsx"));
        } catch (IOException e) {
            assertTrue(false);
            return;
        }

        System.out.println("start");

        // Appインスタンス生成
        AppWrapper app = new AppWrapper();

        // ワークブックをフォントとフォントサイズを指定して作成します。
        WorkBookWrapper wb = app.createWorkBook("cells.xlsx", XlFont.YU_MINCHO, 12.0);

        // ワークシートを開きます。
        WorkSheetWrapper ws = wb.openWorkSheet("Sheet1");

        // A1に値を設定します。
        ws.getRange("A1").setValue("セルサンプル");

        // colorObjectを作成します。
        ColorObjectWrapper color = new ColorObjectWrapper();

        // テーマカラーを設定します。
        color.setThemeColor(XlThemeColor.ThemeColorAccent1);

        // colorObjectを作成します。
        ColorObjectWrapper color2 = new ColorObjectWrapper();

        // Hexカラーを設定します。
        color2.setHexColor("888888");

        // ハイパーリンクオブジェクトを作成します。
        HyperlinkObjectWrapper hyperlink = new HyperlinkObjectWrapper();

        // 外部リンクを設定します。
        hyperlink.setAddress("https://osb-office.com/");

        // フォントオブジェクトを作成します。
        FontObjectWrapper font = new FontObjectWrapper();

        // フォント名を設定します。
        font.setName(XlFont.BIZ_UDGOTHIC);
        // フォントサイズを設定します。
        font.setSize(10.5);

        // パターンフィルオブジェクトを設定します。
        PatternFillObjectWrapper ptfill = new PatternFillObjectWrapper();
        // パターンフィルの種類を設定します。
        ptfill.setPattern(XlPatternType.PatternCrissCross);
        // 前面色を設定します。
        ptfill.setPatternColorObject(color);
        // 背景色を設定します。
        ptfill.setColorObject(color2);

        // コメントオブジェクトを作成します。
        CommentObjectWrapper comment = new CommentObjectWrapper();
        DateTimeObjectWrapper dt = new DateTimeObjectWrapper();
        dt.setYMD(2023, 11, 30);
        dt.setHMS(15, 25, 35);

        // コメント者を設定します。
        comment.setAuthor("OSBOffice,Inc");
        // コメント日付を設定します。
        comment.setCommentDate(dt);
        // コメント内容を設定します。
        comment.setContent("サンプルコメント作成");

        for (var i = 3; i < 6; i++) {

            // 行の高さを設定します。
            ws.getRow(i).setHeight(25);

            if (i == 5) {
                // アウトラインを設定します。
                ws.setRowOutline(5, 6, 2);
            }

            for (var j = 1; j < 11; j++) {

                if (i == 3) {
                    // 列の幅を設定します。
                    ws.getCol(j).setColumnWidth(12);
                }

                RangeWrapper r = ws.getCells(i, j);
                // 各セルに値を設定します。
                r.setNumberValue(i * 1000 + j);
                // 3桁区切りのセル書式を適用します。
                r.setNumberFormat("#,##0");

                // フォントに色をつけます。
                r.getFont().setColorObject(color);
                // フォントを太字にします。
                r.getFont().setBold(true);
                // セル色をつけます。
                r.getFill().setCellColorObject(color2);
                // 枠線をつけます。
                r.getBorders().setLineStyles(XlLineStyleBorderWeight.Dashed, XlBorderPresetType.outerBoders);
                // 横方向に中央配置します。
                r.getAlignment().setHorizontalAlignment(XlHAlign.HAlignCenter);

                // 縦方向に中央配置します。
                r.getAlignment().setVerticalAlignment(XlVAlign.VAlignCenter);

                // セルの保護を有効にします。
                r.getProtection().setLocked(true);

                if (j == 1) {
                    // セルにメモを設定します。
                    ws.getComments().setMemo(app.convertFromRowColNumber(i, j), "OSBOffice,Inc", "サンプルコメント", font,
                            true);
                }

                if (j == 3) {
                    // パターンフィルを設定します。
                    r.getFill().setPatternFillObject(ptfill);
                }

                if (j == 5) {
                    // コメントを新規作成します。
                    ws.getComments().setComment(app.convertFromRowColNumber(i, j), comment);

                    // コメント一覧を取得します。
                    List<CommentObjectWrapper> comments = ws.getComments()
                            .getComment(app.convertFromRowColNumber(i, j));

                    // スレッドのID(親ID)を取得し、コメントオブジェクトに設定します。
                    comment.setParentId(comments.get(0).getId());

                    // 返信コメントを設定します。
                    comment.setContent("サンプルコメント返信");
                    // コメントに返信します。
                    ws.getComments().setComment(app.convertFromRowColNumber(i, j), comment);
                }

                if (j == 10) {
                    // セルにハイパーリンクを設定します。
                    ws.getHyperLinks().setHyperLink(app.convertFromRowColNumber(i, j), hyperlink);
                }
            }
        }

        // PageSetupObjectを作成します。
        PageSetupObjectWrapper page = new PageSetupObjectWrapper();

        // ヘッダーオブジェクトを作成します。
        HeaderObjectWrapper header = new HeaderObjectWrapper();

        // 中央に文字列を設定します。
        header.setCenterHeader("サンプルヘッダー");

        // PageSetupObjectにヘッダーオブジェクトを設定します。
        page.setHeader(header);

        // ワークシートにPageSetupObjectを設定します。
        ws.setPageSetupObject(page);

        // ワークブックを保存します。
        wb.save();

        // ワークブックを閉じます。
        wb.close();

        System.out.println("end");
    }
}

オートフィルターの使用例

以下のコードは、オートフィルターの操作を行うサンプルです。

JUnitを利用しています。

package example;

import static org.junit.Assert.assertTrue;

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import com.osboffice.osbxl.AppWrapper;
import com.osboffice.osbxl.WorkBookWrapper;
import com.osboffice.osbxl.WorkSheetWrapper;
import com.osboffice.osbxl.dto.ColorObjectWrapper;
import com.osboffice.osbxl.enums.*;

import org.junit.Test;

public class SampleAutoFilterTest {

    @Test
    public void autoFilterSample() throws IOException, Exception {

        try {
            Files.deleteIfExists(FileSystems.getDefault().getPath("./autofilter.xlsx"));
        } catch (IOException e) {
            assertTrue(false);
            return;
        }

        System.out.println("start");

        // Appインスタンス生成
        AppWrapper app = new AppWrapper();

        // ワークブックをフォントとフォントサイズを指定して作成します。
        WorkBookWrapper wb = app.createWorkBook("autofilter.xlsx", XlFont.YU_MINCHO, 12.0);

        // ワークシートを開きます。
        WorkSheetWrapper ws = wb.openWorkSheet("Sheet1");

        ws.getRange("A1").setValue("フィルター1");
        ws.getRange("B1").setValue("フィルター2");

        ColorObjectWrapper color = new ColorObjectWrapper();
        color.setColorIndex(XlIndexColor.ColorIndexRed);

        List<String> redlist = new ArrayList<String>();
        Random rand = new Random();

        for (int i = 2; i < 13; i++) {
            for (int j = 1; j < 3; j++) {
                int val = rand.nextInt(1, 100);
                // randomな値を設定します。
                ws.getCells(i, j).setNumberValue(val);

                if (val >= 50) {
                    // 50以上の場合、フォント色を設定します。
                    ws.getCells(i, j).getFont().setColorObject(color);
                    redlist.add(app.convertFromRowColNumber(i, j));
                }
            }
        }

        // 1列目の値の上位80%をフィルター対象とし、フィルターします。
        ws.getAutoFilter("A1:B12").setTop10PercentFilter(80, 1);

        if (redlist.size() > 0) {
            // 2列目で、フォント色が設定されているセルをフィルターします。
            ws.getAutoFilter("A1:B12").setFontColorFilter(redlist.get(0), 2);
        }
        // 2列目の値で、降順にソートします。
        ws.getAutoFilter("A1:B12").getSort().executeSortDescending(2);

        // ワークブックを保存します。
        wb.save();
        // ワークブックを閉じます。
        wb.close();

        System.out.println("end");
    }
}

条件付き書式の使用例

以下のコードは、条件付き書式の操作を行うサンプルです。

JUnitを利用しています。

package example;

import static org.junit.Assert.assertTrue;

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import com.osboffice.osbxl.AppWrapper;
import com.osboffice.osbxl.WorkBookWrapper;
import com.osboffice.osbxl.WorkSheetWrapper;
import com.osboffice.osbxl.dto.AboveAverageObjectWrapper;
import com.osboffice.osbxl.dto.BorderObjectWrapper;
import com.osboffice.osbxl.dto.BordersObjectWrapper;
import com.osboffice.osbxl.dto.ColorObjectWrapper;
import com.osboffice.osbxl.dto.ColorScaleObjectWrapper;
import com.osboffice.osbxl.enums.*;

import org.junit.Test;

public class SampleFormatConditionsTest {

    @Test
    public void formatConditionsSample() throws IOException, Exception {

        try {
            Files.deleteIfExists(FileSystems.getDefault().getPath("./formatconditions.xlsx"));
        } catch (IOException e) {
            assertTrue(false);
            return;
        }

        System.out.println("start");

        // Appインスタンス生成
        AppWrapper app = new AppWrapper();

        // ワークブックをフォントとフォントサイズを指定して作成します。
        WorkBookWrapper wb = app.createWorkBook("formatconditions.xlsx", XlFont.YU_MINCHO, 12.0);

        // ワークシートを開きます。
        WorkSheetWrapper ws = wb.openWorkSheet("Sheet1");

        ws.getRange("A1").setValue("フィルター1");
        ws.getRange("B1").setValue("フィルター2");

        ColorObjectWrapper color = new ColorObjectWrapper();
        color.setColorIndex(XlIndexColor.ColorIndexRed);

        List<String> redlist = new ArrayList<String>();
        Random rand = new Random();

        for (int i = 2; i < 13; i++) {
            for (int j = 1; j < 3; j++) {
                int val = rand.nextInt(10);
                // randomな値を設定します。
                ws.getCells(i, j).setNumberValue(val);

                if (val >= 50) {
                    // 50以上の場合、フォント色を設定します。
                    ws.getCells(i, j).getFont().setColorObject(color);
                    redlist.add(app.convertFromRowColNumber(i, j));
                }
            }
        }

        ColorObjectWrapper colormin = new ColorObjectWrapper();
        colormin.setColorIndex(XlIndexColor.ColorIndexGreen);

        ColorObjectWrapper colormax = new ColorObjectWrapper();
        colormax.setColorIndex(XlIndexColor.ColorIndexBlue);

        // colorscaleオブジェクトを作成します。
        ColorScaleObjectWrapper colorscale = new ColorScaleObjectWrapper();

        // 範囲を設定します。
        colorscale.setA1C1("A1:A12");

        // 最少条件を設定します。
        colorscale.setMinimumCondition(colormin, XlConditionValueType.ConditionValueTypePercent, 20);

        // 最大条件を設定します。
        colorscale.setMaximumCondition(colormax, XlConditionValueType.ConditionValueTypePercent, 70);

        // colorscale条件付き書式を設定します。(priprity=1)
        ws.getFormatConditions().setColorScaleFormatCondition(1, colorscale);

        // aboveaverageオブジェクトを作成します。
        AboveAverageObjectWrapper above = new AboveAverageObjectWrapper();

        // 範囲を設定します。
        above.setA1C1("B1:B12");

        BordersObjectWrapper borders = new BordersObjectWrapper();
        BorderObjectWrapper border = new BorderObjectWrapper();
        border.setLineStyle(XlBordersIndex.EdgeBottom, XlLineStyleBorderWeight.Thin);
        borders.setBorder(border);

        // 適用する枠線を設定します。
        above.setBorders(borders);

        // 適用条件を設定します。
        above.setAboveBelow(XlAboveBelow.XlEqualAboveAverage);

        // aboveaverage条件付き書式を設定します。(priprity=2)
        ws.getFormatConditions().setAboveAverageCondition(2, above);

        // ワークブックを保存します。
        wb.save();
        // ワークブックを閉じます。
        wb.close();

        System.out.println("end");
    }
}

テーブルの使用例

以下のコードは、テーブルの操作を行うサンプルです。

JUnitを利用しています。

package example;

import static org.junit.Assert.assertTrue;

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.util.Random;

import com.osboffice.osbxl.AppWrapper;
import com.osboffice.osbxl.TableWrapper;
import com.osboffice.osbxl.WorkBookWrapper;
import com.osboffice.osbxl.WorkSheetWrapper;
import com.osboffice.osbxl.dto.ColorObjectWrapper;
import com.osboffice.osbxl.enums.*;

import org.junit.Test;

public class SampleTableTest {

    @Test
    public void tableSample() throws IOException, Exception {

        try {
            Files.deleteIfExists(FileSystems.getDefault().getPath("./tables.xlsx"));
        } catch (IOException e) {
            assertTrue(false);
            return;
        }

        System.out.println("start");

        // Appインスタンス生成
        AppWrapper app = new AppWrapper();

        // ワークブックをフォントとフォントサイズを指定して作成します。
        WorkBookWrapper wb = app.createWorkBook("tables.xlsx", XlFont.YU_MINCHO, 12.0);

        // ワークシートを開きます。
        WorkSheetWrapper ws = wb.openWorkSheet("Sheet1");

        ws.getRange("A1").setValue("列");
        ws.getRange("B1").setValue("項目1");
        ws.getRange("C1").setValue("項目2");
        ws.getRange("D1").setValue("項目3");

        ColorObjectWrapper color = new ColorObjectWrapper();
        color.setColorIndex(XlIndexColor.ColorIndexRed);

        Random rand = new Random();

        for (int i = 2; i < 13; i++) {
            for (int j = 1; j < 5; j++) {
                if (j == 1) {
                    ws.getCells(i, j).setValue("列" + String.valueOf(i - 1));
                    continue;
                }

                int val = rand.nextInt(1, 100);
                // randomな値を設定します。
                ws.getCells(i, j).setNumberValue(val);
            }
        }

        // テーブルを1行目を見出しとして、集計行を表示する形で作成します。
        TableWrapper table = ws.getListObjects().addList("Table1", "A1:D12", true, true);

        // 集計行の見出し、タイプを設定します。
        table.setTotalRowLabel(1, "合計");
        table.setTotalRowFunction(2, XlTotalsCalculation.TotalsCalculationSum);
        table.setTotalRowFunction(3, XlTotalsCalculation.TotalsCalculationSum);
        table.setTotalRowFunction(4, XlTotalsCalculation.TotalsCalculationSum);

        // テーブルのスタイルを設定します。
        table.setBuiltinStyleName(XlDefaultTableStyle.TableStyleLight2, true);
        table.setShowTableStyleRowStripes(true);

        // テーブルにオートフィルターを設定します。
        table.setShowAutoFilter(true);

        // 2列目をフィルターします。(平均以上)
        table.getAutoFilter().setAverageFilter(true, 2);

        // ワークブックを保存します。
        wb.save();
        // ワークブックを閉じます。
        wb.close();

        System.out.println("end");
    }
}

ピボットテーブルの使用例

以下のコードは、ピボットテーブルの操作を行うサンプルです。

JUnitを利用しています。

package example;

import static org.junit.Assert.assertTrue;

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import com.osboffice.osbxl.AppWrapper;
import com.osboffice.osbxl.PivotTableWrapper;
import com.osboffice.osbxl.WorkBookWrapper;
import com.osboffice.osbxl.WorkSheetWrapper;
import com.osboffice.osbxl.dto.ColorObjectWrapper;
import com.osboffice.osbxl.dto.PivotFieldObjectWrapper;
import com.osboffice.osbxl.dto.PivotTableSettingObjectWrapper;
import com.osboffice.osbxl.enums.*;

import org.junit.Test;

public class SamplePivotTableTest {

    @Test
    public void pivotTableSample() throws IOException, Exception {

        try {
            Files.deleteIfExists(FileSystems.getDefault().getPath("./pivottables.xlsx"));
        } catch (IOException e) {
            assertTrue(false);
            return;
        }

        System.out.println("start");

        // Appインスタンス生成
        AppWrapper app = new AppWrapper();

        // ワークブックをフォントとフォントサイズを指定して作成します。
        WorkBookWrapper wb = app.createWorkBook("pivottables.xlsx", XlFont.YU_MINCHO, 12.0);

        // ワークシートを開きます。
        WorkSheetWrapper ws = wb.openWorkSheet("Sheet1");

        ws.getRange("A1").setValue("列");
        ws.getRange("B1").setValue("項目1");
        ws.getRange("C1").setValue("項目2");
        ws.getRange("D1").setValue("項目3");

        ColorObjectWrapper color = new ColorObjectWrapper();
        color.setColorIndex(XlIndexColor.ColorIndexRed);

        Random rand = new Random();

        for (int i = 2; i < 13; i++) {
            for (int j = 1; j < 5; j++) {
                if (j == 1) {
                    ws.getCells(i, j).setValue("列" + String.valueOf((i - 1) % 3));
                    continue;
                }
                if (j == 2) {
                    ws.getCells(i, j).setValue("行" + String.valueOf((i - 1) % 3));
                    continue;
                }

                int val = rand.nextInt(1, 100);
                // randomな値を設定します。
                ws.getCells(i, j).setNumberValue(val);
            }
        }

        // ピボットテーブルを作成します。
        PivotTableWrapper pivottable = ws.getPivotTables().addPivotTable("PivotTable1", "A1:D12", "A15");

        // デフォルトのピボットテーブル設定を取得します。
        PivotTableSettingObjectWrapper settings = pivottable.getPivotTableSetting();

        // 現在のピボットテーブルのフィールドを取得します。
        List<PivotFieldObjectWrapper> fields = pivottable.getFields();

        List<PivotFieldObjectWrapper> rowfields = new ArrayList<PivotFieldObjectWrapper>();
        List<PivotFieldObjectWrapper> colfields = new ArrayList<PivotFieldObjectWrapper>();
        List<PivotFieldObjectWrapper> filterfields = new ArrayList<PivotFieldObjectWrapper>();
        List<PivotFieldObjectWrapper> datafields = new ArrayList<PivotFieldObjectWrapper>();

        // rowFiledsを設定します。
        rowfields.add(fields.get(0));

        // colFiledsを設定します。
        colfields.add(fields.get(1));

        // データフィールドを設定します。
        datafields.add(fields.get(2));

        // データフィールドを設定します。
        datafields.add(fields.get(3));

        // 2個目のデータフィールドの集計方法を平均に設定します。
        datafields.get(1).setDataFieldSubTotalsMethod(XlPivotFieldSubtotalsMethodType.SubtotalsMethodTypeAverage);

        // ピボットフィールドの集計を行います。
        pivottable.setFields(settings, XlPivotTableLayoutType.CompactForm, rowfields, colfields, filterfields,
                datafields);

        // ワークブックを保存します。
        wb.save();
        // ワークブックを閉じます。
        wb.close();

        System.out.println("end");
    }
}

チャートの使用例

以下のコードは、チャートの操作を行うサンプルです。

JUnitを利用しています。

package example;

import static org.junit.Assert.assertTrue;

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.util.Random;

import com.osboffice.osbxl.AppWrapper;
import com.osboffice.osbxl.WorkBookWrapper;
import com.osboffice.osbxl.WorkSheetWrapper;
import com.osboffice.osbxl.chart.ChartWrapper;
import com.osboffice.osbxl.enums.*;

import org.junit.Test;

public class SampleChartsTest {

    @Test
    public void chartsSample() throws IOException, Exception {

        try {
            Files.deleteIfExists(FileSystems.getDefault().getPath("./charts.xlsx"));
        } catch (IOException e) {
            assertTrue(false);
            return;
        }

        System.out.println("start");

        // Appインスタンス生成
        AppWrapper app = new AppWrapper();

        // ワークブックをフォントとフォントサイズを指定して作成します。
        WorkBookWrapper wb = app.createWorkBook("charts.xlsx", XlFont.YU_MINCHO, 12.0);

        // ワークシートを開きます。
        WorkSheetWrapper ws = wb.openWorkSheet("Sheet1");

        ws.getRange("A1").setValue("列");
        ws.getRange("B1").setValue("項目1");
        ws.getRange("C1").setValue("項目2");
        ws.getRange("D1").setValue("項目3");

        Random rand = new Random();

        for (int i = 2; i < 13; i++) {
            for (int j = 1; j < 5; j++) {
                if (j == 1) {
                    ws.getCells(i, j).setValue("列" + String.valueOf(i - 1));
                    continue;
                }

                int val = rand.nextInt(10);
                // randomな値を設定します。
                ws.getCells(i, j).setNumberValue(val);
            }
        }

        // チャート名と領域を作成します。
        ChartWrapper chart = ws.addChartObject("Chart1", 200, 200, 400, 400).getChart();

        // チャートを作成します。
        chart.chartWizard("A1:D12", XlChartType.ChartType3DLine, XlRowCol.Columns, 1, 1);

        // 凡例の表示を設定します。
        chart.setLegend(true);

        // 凡例のポジションを設定します。
        chart.getLegend().setPosition(XlLegendPosition.LegendPositionTop);

        // ワークブックを保存します。
        wb.save();
        // ワークブックを閉じます。
        wb.close();

        System.out.println("end");
    }
}