SHOEISHA iD

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

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

ComponentZine(ComponentOne)(AD)

モダンな環境に対応する便利で多様なコンポーネント ~ バーコード/Excel/PDF/高解像度対応/タッチ操作/タイル

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

Excel

 Excelコンポーネントを利用すると、Excelファイルの読み取り、編集、保存が可能になります。

 業務でExcel利用するケースは多く、これまで顧客がExcelで編集していた作業をアプリケーションで簡略化したい場合などに、Excelコンポーネントは力を発揮するでしょう。また、開発したアプリケーションを動作させるPCにExcelをインストールする必要が無いこともポイントです。

 本記事ではExcelファイルの読み込み、内容の取得・変更・保存、Excelの数式を利用するサンプルを紹介します。

プロジェクトの作成

 「C1XLBookSample」という名前で、Windowsフォームアプリケーションを作成します。

C1XLBookSampleプロジェクトの作成
C1XLBookSampleプロジェクトの作成

C1XLBookコンポーネントの追加

 上部メニューの「ツール」→「ツールボックスのアイテムの選択」をクリックします。

 ポップアップした「ツールボックスアイテムの選択」ウィンドウの「.NET Framework コンポーネント」タブからC1XLBookにチェックを入れて「OK」をクリックします。

C1XLBookコンポーネントの追加
C1XLBookコンポーネントの追加

C1XLBookの配置

 C1XLBookは画面に何か表示するわけではありませんが、他のコンポーネント同様ツールボックスからデザイン画面にドロップすることで、参照に追加され利用可能になります。

 下画像のようにデザイン画面下に追加したC1XLBookが表示されます(画像ではNameプロパティの「c1XLBook1」として表示されています)。

C1XLBookの配置
C1XLBookの配置

その他コンポーネントの追加

 ツールボックスから文字表示用のLabel、文字入力用のTextBoxと、Buttonコンポーネントを追加します。

その他コンポーネントの追加
その他コンポーネントの追加

Excelファイルを開く

 Excelファイルを開くために、ドキュメントフォルダに以下画像のように、1行目A列にsampleと書かれたExcelファイル「sample.xlsx」を用意しておきます。

Excelファイルをあらかじめ用意
Excelファイルをあらかじめ用意

 Form1.csのデザイン画面から、外枠のウィンドウをダブルクリックします。ダブルクリックするとForm1.csにForm1_Loadメソッドが自動で生成されます。

Form1_Loadメソッドが自動で追加される
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    }
}

 Form1_LoadメソッドにExcelファイルを開き、1行目A列の文字を取得する処理を記述します。

Excelファイルを開き1行目A列の文字を取得する
private void Form1_Load(object sender, EventArgs e)
{
    // エクセルファイルを開く
    this.c1XLBook1.Load(System.Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "\\sample.xlsx");

    // 一番目のシートの一列一行目の文字列を取得
    this.label1.Text = c1XLBook1.Sheets[0][0, 0].Text;
}

Excelファイルを編集して保存する

 Form1.csのデザイン画面を表示し、Buttonコンポーネントをダブルクリックします。Form1.csにButtonをクリックした際のイベントハンドラーbutton1_Clickメソッドが自動で追加されます。

 button1_Clickメソッドを以下のように修正します。

Excelファイルを開き1行目A列の文字を取得する
private void button1_Click(object sender, EventArgs e)
{
    // 一列一行目の値を書き換える
    c1XLBook1.Sheets[0][0, 0].Value = this.textBox1.Text;

    this.label1.Text = this.textBox1.Text;

    // エクセルファイルを保存する
    c1XLBook1.Save(System.Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "\\sample.xlsx");
}

 プログラムを実行してExcelファイルの読み込みと、編集が行われることを確認してみてください。

C1XLBookSampleの実行
C1XLBookSampleの実行

Excelの数式を利用する

 Excelの数式をプログラムから利用することも可能です。以下のようにbutton1_Clickにコードを追記します。

数式を利用する
private void button1_Click(object sender, EventArgs e)
{
    // 一列一行目の値を書き換える
    c1XLBook1.Sheets[0][0, 0].Value = this.textBox1.Text;

    this.label1.Text = this.textBox1.Text;

    // エクセルの数式を使って計算する
    c1XLBook1.Sheets[0][3, 0].Value = 5;
    c1XLBook1.Sheets[0][4, 0].Value = 2;

    c1XLBook1.Sheets[0][5, 0].Formula = "=SUM(A4:A5)";

    // エクセルファイルを保存する
    c1XLBook1.Save(System.Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "\\sample.xlsx");
}

 数式はFormulaプロパティに設定します。プログラムを実行すると、以下のようにSUM(合計)がA列6行目に表示されます。

数式の実行結果
数式の実行結果

次のページ
PDF

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

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

もっと読む

この記事の著者

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

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

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9343 2016/04/07 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング