1

ボタンとチャート オブジェクトがあるフォームがあります。動的に入力しているExcelシートがあります。列 C と D には、セル C1 と D1 にそれぞれ「EOS」と「Count」というヘッダーがあります。データの入力は、可変行数まで C2 と D2 から始まります。

私が欲しいのは、ボタン n フォームをクリックすると、カート領域に単純な棒グラフが表示されることです。チャートの X 軸は C2、C3、....、Cn 値、Y 軸は D2、D3、....、Dn 値です。このページの次のコードは、必要なことを行いますが、Access db をソースとして使用します。

excel sheetデータソースとして使用してそれを達成する方法を教えてください。

'~~> Code to generate the chart
Private Sub Button2_Click(ByVal sender As System.Object, ByVal _
e As System.EventArgs) Handles Button2.Click
    Dim strConn As String = _
    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & TextBox1.Text & _
    ";Persist Security Info=False;"

    Dim tblFields As String = "SELECT * from Table1"

    Dim conn As New OleDbConnection(strConn)
    Dim oCmd As New OleDbCommand(tblFields, conn)
    Dim oData As New OleDbDataAdapter(tblFields, conn)
    Dim ds As New DataSet

    conn.Open()
    oData.Fill(ds, "Table1")
    conn.Close()

    Chart1.DataSource = ds.Tables("Table1")
    Dim Series1 As Series = Chart1.Series("Series1")
    Series1.Name = "Sales"
    Chart1.Series(Series1.Name).XValueMember = "nFruits"
    Chart1.Series(Series1.Name).YValueMembers = "nSales"

    Chart1.Size = New System.Drawing.Size(780, 350)
End Sub
4

2 に答える 2

2

Excelからの読み込み例が多い

VB.NET を使用した Excel ファイルの読み取りと書き込み http://www.codeproject.com/Articles/18073/Reading-and-writing-an-Excel-file-using-VB-NET

Visual Basic .NET で Excel ワークブックからデータを読み取る http://www.vb-helper.com/howto_net_read_excel.html

VB.NET エクセル http://www.dotnetperls.com/excel-vbnet

また、Microsoft Excel ファイルを読み取るために C# で記述されたライブラリ ('97-2007) http://exceldatareader.codeplex.com/

于 2013-08-30T10:53:52.870 に答える
1

うまくいきました!エラーは、Excel ファイルの絶対パスを指定していなかったためです。コードは次のとおりです。

Dim strConn As String = _
    "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=C:\Temp\EOS123.xls;Extended Properties=""Excel 8.0;HDR=YES;"""

    Dim tblFields As String = "SELECT EOS, Count from [Sheet1$]"

    Dim conn As New OleDbConnection(strConn)
    Dim oCmd As New OleDbCommand(tblFields, conn)
    Dim oData As New OleDbDataAdapter(tblFields, conn)
    Dim ds As New DataSet

    conn.Open()
    oData.Fill(ds, "Sheet1")
    conn.Close()

    Chart1.DataSource = ds.Tables("Sheet1")
于 2013-08-31T07:38:30.683 に答える