2016-07-23 10 views
0

내가 엑셀 ​​내가 엑셀 ​​그리드 컨트롤에 파일을 가져 오는 아무런 문제가 없지만 GridControl에 DevExpress의 파일 가져있어 파일을 가져 난 내 GridControl에 열을 추가 할 때 다음DevExpress의 GridControl에 문제가 엑셀이

내가도의 GridView에서 CustomColumnUnBoundData 이벤트을 사용 시도, 내 엑셀이 그 열을 덮어 파일을 가져 오려고 작동하는 것 같다 및 언 바운드 열을 추가 할 때 그것은 열을 덮어 쓰지 않습니다하지만 때 버튼을 클릭하면 두 개의 c가 생성됩니다. 일부 이유에 대한 olumns [이름] 및 행 값을 두 번 쿼리합니다.

샘플 VB :

의 클래스 VB :

Private Sub SimpleButton2_Click(sender As System.Object, e As System.EventArgs) Handles SimpleButton2.Click, GridView1.DataSourceChanged 
     OFD.ImportMe(GridControl1, TextEdit1) 
     view = GridControl1.MainView 
     'Dim Columns As GridColumn 
     GridColumn1 = GridView1.Columns.AddField("NAME") 
     GridColumn1.VisibleIndex = view.Columns.Count 

    End Sub 

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 

    End Sub 

    Private Sub GridView1_CustomUnboundColumnData(sender As Object, e As DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs) Handles GridView1.CustomUnboundColumnData 
     Dim Fields() As String = {"NAME", "DESCRIPTION", "STOCK", "ORDERED"} 

     GridColumn1.VisibleIndex = GridView1.Columns.Count - 1 
     For i As Integer = 0 To GridView1.Columns.Count 

      If e.Column.FieldName = Fields(0) AndAlso e.IsGetData Then 
       e.Value = e.ListSourceRowIndex 
      End If 
      ' OFD.Listing(e.ListSourceRowIndex) 
     Next 
    End Sub 

은 내가 다른 클래스에서 연결 확립 나는 긴 게시물에 대한 사과

Public Function openMe(ByVal path As TextEdit) 

     Dim ofd As New OpenFileDialog 
     ofd.Filter = "Excel Files (*.xls)|*.xls|All Files (*.)|*.*" 

     If ofd.ShowDialog() = DialogResult.OK Then 
      path.Text = ofd.FileName 
     End If 
     Return 0 
    End Function 

    Public Function ImportMe(ByVal gc As GridControl, ByVal file As TextEdit) 

     Dim Connect As OleDbConnection 
     Dim Command As OleDbDataAdapter 
     Dim con As String 

     con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + file.Text + ";Extended Properties=Excel 8.0" 

     Connect = New OleDbConnection(con) 
     Command = New OleDbDataAdapter("Select * from [Sheet1$]", Connect) 
     DD = New DataSet() 

     Command.Fill(DD) 
     gc.DataSource = DD.Tables(0) 
     Connect.Close() 
     Return DD 
    End Function 

    Public Function Listing(ByVal sender As Object, ByVal listSource As Integer) 
     Dim DR As DataRow = DD.Tables("NAME").Rows(listSource) 
     Return DR 
    End Function 

을 난 단지 돈 이 사건을 일으키는 원인이 무엇인지 알기 때문에 철저히 설명해야했습니다. 감사합니다

+0

Excel의 열 및 열 이름이 동일합니까? –

답변

0

데이터 소스를 설정할 때 모눈에 열이없는 경우 모눈은 GridColumns를 자동으로 생성합니다. 이 동작을 방지하려면 GridView.OptionsBehavior.AutoPopulateColumns를 false로 설정할 수 있습니다.