2013-05-14 63 views
2

以前,我試圖將gridview值導出到excel中。但與下面給出的代碼我能夠導出數據到Excel中。但還是不能自動保存那個excel文件變成固定文件夾假設在C:/驅動器。下面給出我寫出來導入excel的代碼。如何在vb.net中保存excel文件

Private Sub ButtonExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonExport.Click 
Dim rowsTotal, colsTotal As Short 
Dim I, j, iC As Short 
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor 
Dim xlApp As New Excel.Application 
Try 
    Dim excelBook As Excel.Workbook = xlApp.Workbooks.Add 
    Dim excelWorksheet As Excel.Worksheet = CType(excelBook.Worksheets(1), Excel.Worksheet) 
    xlApp.Visible = True 
    rowsTotal = DataGridView1.RowCount - 1 
    colsTotal = DataGridView1.Columns.Count - 1 
    With excelWorksheet 
     .Cells.Select() 
     .Cells.Delete() 
     For iC = 0 To colsTotal 
      .Cells(1, iC + 1).Value = DataGridView1.Columns(iC).HeaderText 
     Next 
     For I = 0 To rowsTotal - 1 
      For j = 0 To colsTotal 
       .Cells(I + 2, j + 1).value = DataGrid1.Rows(I).Cells(j).Value 
      Next j 
     Next I 
     .Rows("1:1").Font.FontStyle = "Bold" 
     .Rows("1:1").Font.Size = 10 
     .Cells.Columns.AutoFit() 
     .Cells.Select() 
     .Cells.EntireColumn.AutoFit() 
     .Cells(1, 1).Select() 
    End With 
Catch ex As Exception 
    MsgBox("Export Excel Error " & ex.Message) 
Finally 
    'RELEASE ALLOACTED RESOURCES 
    System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default 
    xlApp = Nothing 
End Try 
End Sub 

任何人都可以在這裏請幫我解決這個問題,如何在VB.NET中自動保存該excel文件?

+3

你甚至嘗試保存它嗎?檢查[這裏](http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.saveas(v = vs.80).aspx) – 2013-05-14 06:23:14

+0

是的,我可以通過外部保存保存爲excel的選項。但是我想在完成導出後自動保存它。 – SoumitaP 2013-05-14 06:25:46

+0

是的,請檢查我的第一條評論的鏈接。 – 2013-05-14 06:26:35

回答

4

SaveAs方法只是在Catch之前Excel.Workbook

定義在你Try末,寫:

excelBook.SaveAs(<some path here>, etc...) 

here更多的信息。

並妥善退出Excel,在開始寫你的Finally塊:

xlApp.Workbooks.Close() 
xlApp.Quit() 
+0

它顯示錯誤。 – SoumitaP 2013-05-14 06:54:05

+0

「導出excel錯誤文件無法訪問請嘗試以下操作之一: – SoumitaP 2013-05-14 06:54:41

+0

它在哪裏顯示錯誤?你的路徑是什麼? – 2013-05-14 06:56:44

0

我只是用:

Dim oexcel As Object 
    Dim obook As Object 
    Dim owrite As New Microsoft.Office.Interop.Excel.Worksheet 

    < your code > 

    owrite.SaveAs("c:\" & foldername) 
0

這是一個老問題,但也許這會幫助還有人。 我最近需要閱讀,解析和編寫xlsx文件。爲此,我使用了C#的OpenXML SDK。 MSDN提供了一些關於如何執行此操作的很好的教程。 如果有人有問題,我可以提供我的代碼。 只是最後一個註釋......當我「發佈」應用程序時,似乎需要在客戶端計算機上安裝SDK。