Excel
Excelコンポーネントを利用すると、Excelファイルの読み取り、編集、保存が可能になります。
業務でExcel利用するケースは多く、これまで顧客がExcelで編集していた作業をアプリケーションで簡略化したい場合などに、Excelコンポーネントは力を発揮するでしょう。また、開発したアプリケーションを動作させるPCにExcelをインストールする必要が無いこともポイントです。
本記事ではExcelファイルの読み込み、内容の取得・変更・保存、Excelの数式を利用するサンプルを紹介します。
プロジェクトの作成
「C1XLBookSample」という名前で、Windowsフォームアプリケーションを作成します。
C1XLBookコンポーネントの追加
上部メニューの「ツール」→「ツールボックスのアイテムの選択」をクリックします。
ポップアップした「ツールボックスアイテムの選択」ウィンドウの「.NET Framework コンポーネント」タブからC1XLBookにチェックを入れて「OK」をクリックします。
C1XLBookの配置
C1XLBookは画面に何か表示するわけではありませんが、他のコンポーネント同様ツールボックスからデザイン画面にドロップすることで、参照に追加され利用可能になります。
下画像のようにデザイン画面下に追加したC1XLBookが表示されます(画像ではNameプロパティの「c1XLBook1」として表示されています)。
その他コンポーネントの追加
ツールボックスから文字表示用のLabel、文字入力用のTextBoxと、Buttonコンポーネントを追加します。
Excelファイルを開く
Excelファイルを開くために、ドキュメントフォルダに以下画像のように、1行目A列にsampleと書かれたExcelファイル「sample.xlsx」を用意しておきます。
Form1.csのデザイン画面から、外枠のウィンドウをダブルクリックします。ダブルクリックするとForm1.csにForm1_Loadメソッドが自動で生成されます。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
Form1_Loadメソッドに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メソッドを以下のように修正します。
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ファイルの読み込みと、編集が行われることを確認してみてください。
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行目に表示されます。

