フォームのデザイン
フォームは、Label、TextBox、Buttonコントロール、C1XLBookコンポーネントで構成します。C1XLBookコンポーネントは、プロセスを提供するコンポーネントのため、ユーザーとの対話機能は持ちませんので、フォームの外に配置されます。Excelのブックにアクセスする機能はすべてコードから行います。
なお、説明の都合上、LabelとTextBoxはフォームのLoadイベントハンドラであらかじめデータを入力しています。C1XLBookコンポーネントの特徴や機能については、前回の記事を参照ください。
データの転送
このプログラムでは、ボタン「書き出し」をクリックすると、Labelの文字とTextBoxの入力データをExcel形式のブックに保存します。
データの転送はとても簡単で、前回行ったようにワークシート「Sheet1」をXLSheetオブジェクトのインスタンスとして作成し、行列番号を指定してデータをセルに入力していくだけです。セルの行列番号はいわゆる「セルA1」が(0, 0)となり、最初の引数が行番号、2番目の引数が列番号になります。
ブックは、毎回新しいブックを作成し、ファイル名を付けて上書き保存します。ファイルのパス名は適当に合わせてください。
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
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"); } }