忍者ブログ

VB.NET-TIPS などプログラミングについて

VB.NETのTIPS(小技集)を中心に、Javascript、PHP その他のプログラミングについて少し役に立つ情報を発信します。いわゆる個人的な忘備録ですが、みなさんのお役に立てれば幸いです。

VB.NET:Spread(GrapeCity)のシートへの簡単な一覧データの設定について
SPREADを使って一覧データを表示することはよくあります。今回は、簡単なデータを一覧表示させる方法です。
以下のソースは、フォームロード時にSPREADの初期化を行っています。 アクティブシートのカラム数を3に設定し、ヘッダ行数を0でクリア設定しています。

フォーム表示後、ボタンをクリックすると、 クリックイベント内で宣言された固定的なテストデータをSPREADに設定し表示させます。
データの1行分毎の処理で、「RowCount」プロパティを+1して行を追加します。 次に、追加された行にカラムデータを1セル毎に「Value」プロパティに設定します。 セルの「Text」プロパティでもほぼ同じ結果になりますが、 第1セルの"001"の値の先頭ゼロが省かれて"1"となってしまいます。

1カラム目のCellTypeが何も設定されていませんので、 「Text」プロパティでデータ設定するとデフォルトでは先頭ゼロは省かれる様です。
もし、「Text」プロパティを使うのであれば、CellTypeを「TextCellType」に設定する必要があります。 (各セル毎にCellTypeを設定する方がいいのですが)
「Value」プロパティの場合は、そのままのデータが設定されるので"001”と表示される様です。
Public Class Form1
    'フォームロード時にSPREADの初期化
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        With Me.FpSpread1.ActiveSheet
            'SPREADのアクティブシートのカラム数を3に設定
            .ColumnCount = 3
            'SPREADの行クリア
            .RowCount = 0
        End With
    End Sub

    'ボタンクリックでカラム連結処理
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        '仮に4行分のデータ
        Dim ArrData(,) As String = { _
            {"001", "Content001", "Test001"}, _
            {"002", "Content002", "Test002"}, _
            {"003", "Content003", "Test003"}, _
            {"004", "Content004", "Test004"} _
        }

        'ソースが長くなるのでWith宣言
        With Me.FpSpread1.ActiveSheet
            'データの行数分の処理
            For i As Integer = 0 To ArrData.GetLength(0) - 1
                '行数を増やす
                .RowCount += 1
                'カラム数分をセルに設定
                For j As Integer = 0 To ArrData.GetLength(1) - 1
                    '.Cells(i, j).Text = ArrData(i, j)  'こちらは"001"⇒"1"と表示される
                    .Cells(i, j).Value = ArrData(i, j)  '書式無しで生のデータを設定
                Next
            Next
        End With
    End Sub
End Class

下図は、最初、フォームが表示された時の様子です。

その後、ボタンをクリックした結果が以下の図です。

尚、ソースの中で使っている「ArrData.GetLength(0)」ですが、これは1次元目の個数を取得するものです。 「ArrData.GetLength(1)」は2次元目の個数です。


=====
2016/02/29:の時の情報











PR

コメント

コメントを書く