2017-03-26 24 views
0

我從Visual Studio數據網格視圖到Excel導出我的數據,我想知道如何添加/保存新牀單到現有的Excel文件保存一個新的工作表到exsisting工作簿從DataGridView。我如何使用Visual Studio的

回答

0

如果使用的OleDb使用SQL創建表

Public Module Demo 
    Public Sub DemoOleDbCreateXls_WithHeaders() 
     Using cn As New OleDb.OleDbConnection With {.ConnectionString = "Your connection string"} 
      Using cmd As New OleDb.OleDbCommand With {.Connection = cn} 
       cmd.CommandText = "CREATE TABLE Members(FirstName CHAR(255),LastName CHAR(255),JoinedYear INT)" 
       cn.Open() 
       cmd.ExecuteNonQuery() 
       cmd.CommandText = "INSERT INTO Members (FirstName,LastName,JoinedYear) VALUES ('Kevin','Gallagher',2013)" 
       cmd.ExecuteNonQuery() 

       cmd.CommandText = "CREATE TABLE Officiers(FirstName CHAR(255),LastName CHAR(255),Rank CHAR(255))" 
       cmd.ExecuteNonQuery() 

       cmd.CommandText = "INSERT INTO Officiers (FirstName,LastName,Rank) VALUES ('Joan','Gallagher','AAA')" 
       cmd.ExecuteNonQuery() 

       cmd.CommandText = "CREATE TABLE Test1(Description CHAR(255),Amount Double)" 
       cmd.ExecuteNonQuery() 

       cmd.CommandText = "INSERT INTO Test1 (Description,Amount) VALUES ('Dues',12.99)" 
       cmd.ExecuteNonQuery() 
      End Using 
     End Using 
    End Sub 
End Module 

使用Excel自動化

Option Strict On 
Option Infer Off 

Imports Excel = Microsoft.Office.Interop.Excel 
Imports System.Runtime.InteropServices 

Module Demo 
    Public Sub CreateSheetIfNeeded(ByVal FileName As String, ByVal SheetName As String) 
     If IO.File.Exists(FileName) Then 

      Dim Proceed As Boolean = False 

      Dim xlApp As Excel.Application = Nothing 
      Dim xlWorkBooks As Excel.Workbooks = Nothing 
      Dim xlWorkBook As Excel.Workbook = Nothing 
      Dim xlWorkSheet As Excel.Worksheet = Nothing 
      Dim xlWorkSheets As Excel.Sheets = Nothing 


      xlApp = New Excel.Application 
      xlApp.DisplayAlerts = False 
      xlWorkBooks = xlApp.Workbooks 
      xlWorkBook = xlWorkBooks.Open(FileName) 

      xlApp.Visible = False 
      xlWorkSheets = xlWorkBook.Sheets 

      ' 
      ' For/Next finds our sheet 
      ' 
      For x As Integer = 1 To xlWorkSheets.Count 
       xlWorkSheet = CType(xlWorkSheets(x), Excel.Worksheet) 

       If xlWorkSheet.Name = SheetName Then 
        Proceed = True 
        Exit For 
       End If 

       Marshal.FinalReleaseComObject(xlWorkSheet) 
       xlWorkSheet = Nothing 

      Next 
      Dim workSheet As Excel.Worksheet = Nothing 
      Dim xlNewSheet As Excel.Worksheet = Nothing 

      If Proceed Then 
       ' do work, sheet exists 
      Else 
       workSheet = CType(xlWorkSheets(1), Excel.Worksheet) 
       xlNewSheet = DirectCast(xlWorkSheets.Add(workSheet), Excel.Worksheet) 
       xlNewSheet.Name = SheetName 

      End If 

      xlWorkBook.SaveAs(FileName) 
      xlWorkBook.Close() 
      xlApp.UserControl = True 
      xlApp.Quit() 

      ReleaseExcelObject(xlNewSheet) 
      ReleaseExcelObject(workSheet) 
      ReleaseExcelObject(xlWorkSheets) 
      ReleaseExcelObject(xlWorkSheet) 
      ReleaseExcelObject(xlWorkBook) 
      ReleaseExcelObject(xlWorkBooks) 
      ReleaseExcelObject(xlApp) 
     Else 
      ' file does not exists 
     End If 
    End Sub 
    Private Sub ReleaseExcelObject(ByVal excelObject As Object) 
     Try 
      If excelObject IsNot Nothing Then 
       Marshal.ReleaseComObject(excelObject) 
       excelObject = Nothing 
      End If 
     Catch ex As Exception 
      excelObject = Nothing 
     End Try 
    End Sub 

End Module 
相關問題