2013-08-30 229 views
1

我有一个表格,其中有一个按钮&图表对象。我有一个Excel表格,我正在动态填充。列C & D分别在单元格C1 & D1中具有标题“EOS”&“计数”。数据填充开始C2 & D2,直到可变数量的行。使用excel数据源在vb.net表格中绘制图表

我想要的是,当按钮n表单被点击时,一个简单的条形图显示在购物车区域。该图应该具有X轴作为C2,C3,...,Cn值和Y轴作为D2,D3,...,Dn值。我从这page这个代码中得到了我需要的代码,但是使用了一个Access数据库作为源代码。

任何人都可以告诉我如何使用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 

回答

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")