入力データの転送
「データ転送」ボタンのイベントハンドラで、各入力コントロールに入力されたデータをセルに転送する処理です。
これは、列見出しの文字列転送と同じように、XLSheetオブジェクトのインデクサでセル番地を指定し、データをValueプロパティに転送します。この時、ConvertクラスのToInt32メソッドで文字列を整数に変換しておきます。
また、現在何件のデータを入力したのかもフォームに表示するようにします。
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
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メソッドを使用します。引数は、保存するファイル名とパス名です。
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
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ファイルからデータを読み出すアプリケーションを作成したいと思います。