SHOEISHA iD

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

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

ComponentZine(ComponentOne)

Excelブックを読み書きする.NET アプリケーションを作る-その2

入力データをExcel形式で保存する.NETアプリケーションを作る

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

フォームのデザイン

 フォームは、Label、TextBox、Buttonコントロール、C1XLBookコンポーネントで構成します。C1XLBookコンポーネントは、プロセスを提供するコンポーネントのため、ユーザーとの対話機能は持ちませんので、フォームの外に配置されます。Excelのブックにアクセスする機能はすべてコードから行います。

 なお、説明の都合上、LabelとTextBoxはフォームのLoadイベントハンドラであらかじめデータを入力しています。C1XLBookコンポーネントの特徴や機能については、前回の記事を参照ください。

フォームのデザイン
フォームのデザイン

データの転送

 このプログラムでは、ボタン「書き出し」をクリックすると、Labelの文字とTextBoxの入力データをExcel形式のブックに保存します。

 データの転送はとても簡単で、前回行ったようにワークシート「Sheet1」をXLSheetオブジェクトのインスタンスとして作成し、行列番号を指定してデータをセルに入力していくだけです。セルの行列番号はいわゆる「セルA1」が(0, 0)となり、最初の引数が行番号、2番目の引数が列番号になります。

 ブックは、毎回新しいブックを作成し、ファイル名を付けて上書き保存します。ファイルのパス名は適当に合わせてください。

Visual Basic
Imports C1.C1Excel
Public Class Form1
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Label3.Text = "りんご"
        Label4.Text = "バナナ"
        Label5.Text = "ミカン"
        Label6.Text = "イチゴ"
        Label7.Text = "パパイヤ"
        Label8.Text = "メロン"

        TextBox1.Text = "100"
        TextBox2.Text = "200"
        TextBox3.Text = "300"
        TextBox4.Text = "400"
        TextBox5.Text = "500"
        TextBox6.Text = "600"
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim wb As New C1XLBook()
        Dim sheet1 As XLSheet = wb.Sheets(0)

        'データの書き出し
        sheet1(0, 0).Value = "品名"
        sheet1(0, 1).Value = "数量"

        sheet1(1, 0).Value = Label3.Text
        sheet1(2, 0).Value = Label4.Text
        sheet1(3, 0).Value = Label5.Text
        sheet1(4, 0).Value = Label6.Text
        sheet1(5, 0).Value = Label7.Text
        sheet1(6, 0).Value = Label8.Text

        sheet1(1, 1).Value = CInt(TextBox1.Text)
        sheet1(2, 1).Value = CInt(TextBox2.Text)
        sheet1(3, 1).Value = CInt(TextBox3.Text)
        sheet1(4, 1).Value = CInt(TextBox4.Text)
        sheet1(5, 1).Value = CInt(TextBox5.Text)
        sheet1(6, 1).Value = CInt(TextBox6.Text)

        'ブックの保存とExcelの起動
        wb.Save("c:\data\グリッドデータ.xls")
        System.Diagnostics.Process.Start("c:\data\グリッドデータ.xls")

    End Sub
End Class
C#
using C1.C1Excel;
namespace myxls_cs
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            label3.Text = "りんご";
            label4.Text = "バナナ";
            label5.Text = "ミカン";
            label6.Text = "イチゴ";
            label7.Text = "パパイヤ";
            label8.Text = "メロン";

            textBox1.Text = "100";
            textBox2.Text = "200";
            textBox3.Text = "300";
            textBox4.Text = "400";
            textBox5.Text = "500";
            textBox6.Text = "600"; 
        }

        private void button1_Click(object sender, EventArgs e)
        {
            C1XLBook wb = new C1XLBook();
            XLSheet sheet1 = wb.Sheets["Sheet1"];

           //データの書き出し
            sheet1[0, 0].Value = "品名";
            sheet1[0, 1].Value = "数量";

            sheet1[1, 0].Value = label3.Text;
            sheet1[2, 0].Value = label4.Text;
            sheet1[3, 0].Value = label5.Text;
            sheet1[4, 0].Value = label6.Text;
            sheet1[5, 0].Value = label7.Text;
            sheet1[6, 0].Value = label8.Text;

            sheet1[1, 1].Value = int.Parse(textBox1.Text);
            sheet1[2, 1].Value = int.Parse(textBox2.Text);
            sheet1[3, 1].Value = int.Parse(textBox3.Text);
            sheet1[4, 1].Value = int.Parse(textBox4.Text);
            sheet1[5, 1].Value = int.Parse(textBox5.Text);
            sheet1[6, 1].Value = int.Parse(textBox6.Text);

            //ブックの保存とExcelの起動
            wb.Save("c:/data/グリッドデータ.xls");
            System.Diagnostics.Process.Start("c:/data/グリッドデータ.xls");
        }
    }

次のページ
XLStyleクラスのインスタンスの作成

修正履歴

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

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

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3590 2009/03/02 10:18

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング