2011-01-21 49 views

回答

1
0

私人小組CopySheet() 昏暗CMD作爲OleDbCommand的 昏暗DT作爲字符串 昏暗DS作爲數據集=新數據集() 昏暗CONNSTRING作爲字符串=「提供者= Microsoft.Jet.OLEDB.4.0;數據源= E: \ EXCEL \ From.xls;擴展屬性= Excel的8.0" 昏暗oledbConn作爲OleDbConnection的=新的OleDbConnection(CONNSTRING) 嘗試 oledbConn.Open() 對於i = 0到1 若i = 0,那麼 CMD =新的OleDbCommand (「SELECT * FROM [Sheet1 $]」,oledbConn) dt =「Sheet3」 Else cmd = New OleDbCommand(「SELECT * FROM [Sheet 2 $]」,oledbConn) DT = 「Sheet4」 結束如果 昏暗oleda作爲OleDbDataAdapter的=新OleDbDataAdapter的() oleda.SelectCommand = CMD oleda.Fill(DS,DT) 接着

 ExportDatasetToExcel(ds, "dd") 
    Catch 
    Finally 
     oledbConn.Close() 
    End Try 
End Sub 

Public Sub ExportDatasetToExcel(ByVal ds As DataSet, ByVal strExcelFile As String) 

    Dim conn As New OleDbConnection(String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\EXCEL\To.xls;Extended Properties=Excel 8.0")) 
    conn.Open() 
    Dim strTableQ(ds.Tables.Count) As String 
    Dim i As Integer = 0 
    'making table query 
    For i = 0 To ds.Tables.Count - 1 
     strTableQ(i) = "CREATE TABLE [" & ds.Tables(i).TableName & "](" 
     Dim j As Integer = 0 
     For j = 0 To ds.Tables(i).Columns.Count - 1 
      Dim dCol As DataColumn 
      dCol = ds.Tables(i).Columns(j) 
      strTableQ(i) &= " [" & dCol.ColumnName & "] varchar(255) , " 
     Next 
     strTableQ(i) = strTableQ(i).Substring(0, strTableQ(i).Length - 2) 
     strTableQ(i) &= ")" 
     Dim cmd As New OleDbCommand(strTableQ(i), conn) 
     cmd.ExecuteNonQuery() 
    Next 
    'making insert query 
    Dim strInsertQ(ds.Tables.Count - 1) As String 
    For i = 0 To ds.Tables.Count - 1 
     strInsertQ(i) = "Insert Into " & ds.Tables(i).TableName & " Values (" 
     For k As Integer = 0 To ds.Tables(i).Columns.Count - 1 
      strInsertQ(i) &= "@" & ds.Tables(i).Columns(k).ColumnName & " , " 
     Next 
     strInsertQ(i) = strInsertQ(i).Substring(0, strInsertQ(i).Length - 2) 
     strInsertQ(i) &= ")" 
    Next 
    'Now inserting data 
    For i = 0 To ds.Tables.Count - 1 
     For j As Integer = 0 To ds.Tables(i).Rows.Count - 1 
      Dim cmd As New OleDbCommand(strInsertQ(i), conn) 
      For k As Integer = 0 To ds.Tables(i).Columns.Count - 1 
       cmd.Parameters.AddWithValue("@" & ds.Tables(i).Columns(k).ColumnName.ToString(), ds.Tables(i).Rows(j)(k).ToString()) 
      Next 
      cmd.ExecuteNonQuery() 
      cmd.Parameters.Clear() 
     Next 
    Next 

    conn.Close() 
End Sub 
相關問題