2009-11-29 52 views

回答

0

最簡單的方法是使用microsoft.visualbasic.fileio(msdn link)中的textfieldparser類。僞代碼應該是:

創建一個textfieldparser對象,將該文件設置爲打開(* .csv)並進行解碼。

寫列標題通過在DataGridView或

循環的datsource 打印文本文件

用戶現在可以在Excel中打開該文件。

這是我的快速回答,我會看看是否有更好的方法來做到這一點。

2

我發現copyfromrecordset是最快的方法。

Dim xlApp As New Excel.Application 
    Dim xlWBook As Excel.Workbook = xlApp.Workbooks.Add 
    Dim XlSheet As Excel.Worksheet = CType(xlWBook.Worksheets("Sheet1"), Excel.Worksheet) 
    With XlSheet 
     'insert column names 
     For i = 2 To dt.Columns.Count - 1 
      .Cells(1, i).value = dt.Columns(i - 1).ColumnName 
     Next 
     'insert the actual data 
     .Range("A2").CopyFromRecordset(datset) 

    End With 
+0

謝謝,但你能解釋一下更多的代碼嗎? – 2009-12-01 06:44:52

0

私人小組的button1_Click(BYVAL發件人爲System.Object的,BYVALË作爲System.EventArgs)把手Button1.Click DATAGRIDVIEW_TO_EXCEL((DataGridView1))'參數:您的DataGridView 結束子

私人小組DATAGRIDVIEW_TO_EXCEL(BYVAL DGV作爲DataGridView中) 嘗試 昏暗DTB =新數據表,RWS作爲整數,CLS作爲整數

For CLS = 0 To DGV.ColumnCount - 1 ' COLUMNS OF DTB 
     DTB.Columns.Add(DGV.Columns(CLS).Name.ToString) 
    Next 

    Dim DRW As DataRow 

    For RWS = 0 To DGV.Rows.Count - 1 ' FILL DTB WITH DATAGRIDVIEW 
     DRW = DTB.NewRow 

     For CLS = 0 To DGV.ColumnCount - 1 
      Try 
       DRW(DTB.Columns(CLS).ColumnName.ToString) = DGV.Rows(RWS).Cells(CLS).Value.ToString 
      Catch ex As Exception 

      End Try 
     Next 

     DTB.Rows.Add(DRW) 
    Next 

    DTB.AcceptChanges() 

    Dim DST As New DataSet 
    DST.Tables.Add(DTB) 
    Dim FLE As String = "" ' PATH AND FILE NAME WHERE THE XML WIL BE CREATED (EXEMPLE: C:\REPS\XML.xml) 
    DTB.WriteXml(FLE) 
    Dim EXL As String = "" ' PATH OF/ EXCEL.EXE IN YOUR MICROSOFT OFFICE 
    Shell(Chr(34) & EXL & Chr(34) & " " & Chr(34) & FLE & Chr(34), vbNormalFocus) ' OPEN XML WITH EXCEL 

Catch ex As Exception 
    MsgBox(ex.ToString) 
End Try 

結束子

0

我測試了它和它的工作。

Dim xlApp As Microsoft.Office.Interop.Excel.Application 
    Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook 
    Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet 
    Dim misValue As Object = System.Reflection.Missing.Value 
    Dim i As Integer 
    Dim j As Integer 

    Try 

     xlApp = New Microsoft.Office.Interop.Excel.Application 
     xlApp.Application.DisplayAlerts = False 
     xlWorkBook = xlApp.Workbooks.Add(misValue) 
     xlWorkSheet = xlWorkBook.Sheets.Add() 
     xlWorkSheet.Name = "MysqlSheet" 

     For i = 0 To Form2.DataGridView2.RowCount - 1 
      For j = 0 To Form2.DataGridView2.ColumnCount - 1 
       For k As Integer = 1 To Form2.DataGridView2.Columns.Count 
        xlWorkSheet.Cells(1, k) = Form2.DataGridView2.Columns(k - 1).HeaderText 
        xlWorkSheet.Cells(i + 2, j + 1) = Form2.DataGridView2(j, i).Value 
       Next 
      Next 
     Next 

     xlWorkSheet.SaveAs("c:\") 'Where u want to save 
     xlWorkBook.Close() 
     xlApp.Quit() 




    Catch ex As Exception 
     MsgBox(ex.Message) 
    Finally 

    End Try 
相關問題