SHOEISHA iD

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

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

ComponentZine(ComponentOne)

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

PowerTools XLS for .NETコンポーネントでMicrosoft Excelファイルの書き込み機能を組み込む

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

入力データの転送

 「データ転送」ボタンのイベントハンドラで、各入力コントロールに入力されたデータをセルに転送する処理です。

 これは、列見出しの文字列転送と同じように、XLSheetオブジェクトのインデクサでセル番地を指定し、データをValueプロパティに転送します。この時、ConvertクラスのToInt32メソッドで文字列を整数に変換しておきます。

 また、現在何件のデータを入力したのかもフォームに表示するようにします。

Visual Basic
Private Sub Button1_Click(ByVal sender As System.Object, _
               ByVal e As System.EventArgs) Handles Button1.Click
    Dim data1 As Integer = 0
    Dim data2 As Integer = 0

    Dim cell As XLCell = sheet(rowpos, 0)

    cell.Value = Me.ListBox1.SelectedItem

    data1 = Convert.ToInt32(Me.TextBox1.Text)
    cell = sheet(rowpos, 1)
    cell.Value = data1

    data2 = Convert.ToInt32(Me.TextBox2.Text)
    cell = sheet(rowpos, 2)
    cell.Value = data2

    cell = sheet(rowpos, 3)
    cell.Value = data1 * data2

    Me.Label5.Text = cell.Value
    Me.Label6.Text = "現在の入力件数:" & rowpos & " 件"
    rowpos += 1
End Sub
C#
private void button1_Click(object sender, EventArgs e)
{
    int data1 = 0;
    int data2 = 0;

    XLCell cell = sheet[rowpos, 0];

    cell.Value = listBox1.SelectedItem;

    data1 = Convert.ToInt32(textBox1.Text);
    cell = sheet[rowpos, 1];
    cell.Value = data1;

    data2 = Convert.ToInt32(textBox2.Text);
    cell = sheet[rowpos, 2];
    cell.Value = data2;

    cell = sheet[rowpos, 3];
    cell.Value = data1 * data2;

    label5.Text = cell.Value.ToString();
    label6.Text = "現在の入力件数:" + rowpos.ToString() + " 件";
    rowpos += 1;
}

ブックを保存する処理

 「保存して終了」ボタンのClickイベントハンドラで、ブック形式のファイルに保存する処理を実行します。

 これは、C1XLBookオブジェクトのSaveメソッドを使用します。引数は、保存するファイル名とパス名です。

Visual Basic
Private Sub Button2_Click(ByVal sender As System.Object, _
                ByVal e As System.EventArgs) Handles Button2.Click
    Me.C1XLBook1.Save("c:\data\hello.xls")
    Me.Close()
End Sub
C#
private void button2_Click(object sender, EventArgs e)
{
    c1XLBook1.Save("c:/data/hello.xls");
    this.Close();
}

まとめ

 自作のプログラムで取得したデータをExcelのブックに保存したいと思っているプログラマの方は多いと思います。

 VBAがわかっていればExcelのオブジェクトを操作すればよいのですが、それでもアプリケーションが走るコンピュータにExcelがインストールされていなければなりません。C1XLBookコンポーネントは、コンポーネント自身でExcelのブック形式のファイルを読み書きしますので、VBAを覚える必要もないですし、アプリケーションが走るコンピュータにExcelがインストールされていなくても構いません。

 今回は、データの書き出しを行いましたが、次回はxlsファイルからデータを読み出すアプリケーションを作成したいと思います。

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

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

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1924 2008/06/24 15:07

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング