none
關於dtatgrid轉excel,可以選擇只抓你要的欄位嗎? RRS feed

  • 問題

  • Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Set xlApp = CreateObject("Excel.Application")
    'xlApp.Visible = True
    Set xlBook = xlApp.Workbooks.add
    Set xlSheet = xlBook.Worksheets(1)
    xlSheet.Columns.AutoFit
    Me.MousePointer = 11 '游標為wait圖形狀態
    For k = 0 To DataGrid1.Columns.Count - 1 'DataGrid所有的列數
        xlSheet.Cells(1, k + 1) = DataGrid1.Columns(k).Caption '第一行為DataGrid的列標題
    Next
    DataGrid1.Scroll 0, -DataGrid1.FirstRow
    DataGrid1.Row = 0
    For i = 0 To DataGrid1.ApproxCount - 1 'DataGrid的所有行數

        For j = 0 To DataGrid1.Columns.Count - 1
            DataGrid1.Col = j
            xlSheet.Cells(i + 2, j + 1) = DataGrid1.Text '從第二行顯示'DataGrid的內容
        Next
        If i < DataGrid1.ApproxCount - 1 Then
            DataGrid1.Row = DataGrid1.Row + 1
        End If
    Next
    Me.MousePointer = 0
    MsgBox "匯出完畢"
    xlApp.Visible = True
    Set xlApp = Nothing '交還控制給Excel
    Set xlBook = Nothing
    Set xlSheet = Nothing

    以上是我的寫法,我想請問,如果這中間,我有幾行欄位不要,
    我要怎麼做,請前輩給我一個方向或方法,謝謝你們,感激不盡

    2006年8月11日 上午 01:46

解答

  • ....

    用 IF ... ELSE 就可以做到了吧 ?

    只要你知道 DataGrid 的 Column index 的話(因為你就是這樣讀取的不是?)

    除了列資料以外,你的標題也是一樣的作法 .

    2006年8月11日 上午 03:17
    版主

所有回覆

  • For i = 0 To DataGrid1.ApproxCount - 1 'DataGrid的所有行數
        For j = 0 To DataGrid1.Columns.Count - 1
            DataGrid1.Col = j
            xlSheet.Cells(i + 2, j + 1) = DataGrid1.Text '從第二行顯示'DataGrid的內容
        Next
        If i < DataGrid1.ApproxCount - 1 Then
            DataGrid1.Row = DataGrid1.Row + 1
        End If
    Next

    在這裡把你不要的欄位去除就可以了啊 ...

    2006年8月11日 上午 03:06
    版主
  • 謝謝您的回答,這一段把不要的欄位去除,那是該改成怎樣的寫法,我的想法是,有沒有辦法

    中間可以插入一些可以踢除不要的欄位,那寫法或用法要怎麼使用呢,謝謝您的回答感激不盡

    2006年8月11日 上午 03:11
  • ....

    用 IF ... ELSE 就可以做到了吧 ?

    只要你知道 DataGrid 的 Column index 的話(因為你就是這樣讀取的不是?)

    除了列資料以外,你的標題也是一樣的作法 .

    2006年8月11日 上午 03:17
    版主
  • 謝謝你,可以了^^。
    2006年8月11日 上午 03:53