SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ComponentOne)(AD)

ComponentOne Studio for WPFでアプリケーションからExcelを取り扱う

  • X ポスト
  • このエントリーをはてなブックマークに追加

Excel形式でファイルを保存する

 C1Excelを用いて、Excel形式のファイルを出力する方法を紹介します。

Excel形式での保存方法

 まずはシンプルにセルに数字を入力したExcelファイルを保存します。

参照の追加

 ソリューションエクスプローラーの「参照」を右クリック→「参照の追加」をクリックします。

参照の追加
参照の追加

 左ナビの「アセンブリ」→「拡張」から「C1.WPF.Excel JPN」にチェックを入れ、右下の「OK」をクリックします。

C1.WPF.Excel JPNの追加
C1.WPF.Excel JPNの追加

usingの追加

 MainWindow.xaml.csに以下のusingを追加します。

usingの追加
using C1.WPF.Excel;

処理の記述

 アプリケーションの起動時にExcel形式のファイルを保存します。

 MainWindow.xaml.csのコンストラクタに以下のように処理を記述します。

Excelファイルの保存処理
public MainWindow()
{
    InitializeComponent();

    // C1XLBookがExcelブックを表すクラス
    C1XLBook book = new C1XLBook();

    // XLSheetがExcelのシートを表す
    XLSheet sheet = book.Sheets[0];

    // 1行目の1から3列目に値を設定する
    sheet[0, 0].Value = 1;
    sheet[0, 1].Value = 2;
    sheet[0, 2].Value = 3;

    // 保存する
    book.Save(@"C:\<ドキュメントフォルダのパス>\excel.xls");
}

 保存するファイルのパスはご自分の環境のドキュメントフォルダを指定してください。

 アプリケーションをデバッグ実行すると、ドキュメントフォルダにexcel.xlsファイルが作成されます。

生成されたExcelファイルを開いた
生成されたExcelファイルを開いた

セルの書式を設定する

 セルに書式を設定してみます。

 セルの書式設定にはXLSheetクラスを用います。

セルに書式を設定する
public MainWindow()
{
    InitializeComponent();

    // C1XLBookがExcelブックを表すクラス
    C1XLBook book = new C1XLBook();

    // XLSheetがExcelのシートを表す
    XLSheet sheet = book.Sheets[0];

    // 1行目の1から3列目に値を設定する
    sheet[0, 0].Value = 1;
    sheet[0, 1].Value = 2;
    sheet[0, 2].Value = 3;

    // スタイルを設定する
    XLStyle style = new XLStyle(book);

    // 文字色を青色に
    style.ForeColor = Colors.Blue;

    sheet[0, 1].Style = style;

    // 保存する
    book.Save(@"C:\<ドキュメントフォルダのパス>\excel.xls");
}
スタイルを変更する
スタイルを変更する

数式を扱う

 セルに式を用いることもできます。

セルに式を用いる
public MainWindow()
{
    InitializeComponent();

    // C1XLBookがExcelブックを表すクラス
    C1XLBook book = new C1XLBook();

    // XLSheetがExcelのシートを表す
    XLSheet sheet = book.Sheets[0];

    // 1行目の1から3列目に値を設定する
    sheet[0, 0].Value = 1;
    sheet[0, 1].Value = 2;
    sheet[0, 2].Value = 3;

    // スタイルを設定する
    XLStyle style = new XLStyle(book);
    style.ForeColor = Colors.Blue;

    sheet[0, 1].Style = style;

    // 式を用いる
    // 1行目の1から3列のSUM(合計)を4列目に求める
    sheet[0, 3].Formula = "SUM(A1: C1)";

    // 保存する
    book.Save(@"C:\<ドキュメントフォルダのパス>\excel.xls");
}
数式を利用する(4列目がSUMの値)
数式を利用する(4列目がSUMの値)

画像の表示

 セルに画像を指定することもできます。

セルに画像を指定する
public MainWindow()
{
    InitializeComponent();

    // C1XLBookがExcelブックを表すクラス
    C1XLBook book = new C1XLBook();

    // XLSheetがExcelのシートを表す
    XLSheet sheet = book.Sheets[0];

    // 1行目の1から3列目に値を設定する
    sheet[0, 0].Value = 1;
    sheet[0, 1].Value = 2;
    sheet[0, 2].Value = 3;

    // スタイルを設定する
    XLStyle style = new XLStyle(book);
    style.ForeColor = Colors.Blue;

    sheet[0, 1].Style = style;

    // 式を用いる
    // 1行目の1から3列のSUM(合計)を4列目に求める
    sheet[0, 3].Formula = "SUM(A1: C1)";

    // 画像を設定する
    // プロジェクトにicon.pngというファイルが含まれている
    WriteableBitmap img = new WriteableBitmap(new BitmapImage(new Uri("icon.png", UriKind.Relative)));
    sheet[1, 0].Value = img;

    // 保存する
    book.Save(@"C:\<ドキュメントフォルダのパス>\excel.xls");
}

 C1XLBookクラスのValueプロパティには、このように画像を指定することもできます。

セルに画像を指定する
セルに画像を指定する

次のページ
Excel形式のファイルを読み込む

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

西村 誠(ニシムラ マコト)

 Microsoft MVP Windows Platform Development。 Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。 ブログ:眠るシーラカンスと水底のプログラマー 著書:基礎から学ぶ Windowsストアアプリ開発

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10002 2017/03/03 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング