Microsoft Excel er regneark software, der giver dig mulighed for at indtaste og administrere enorme mængder af data i regneark. Hvis du vil overføre data ind i Excel fra en database , Visual Basic er en Microsoft programmeringssprog, der tillader dig at kopiere indholdet af et datasæt til en Excel -fil. Visual Basic er designet til begyndere programmører og er primært brugt til at udvikle og tilpasse Windows-programmer som Word, PowerPoint og Excel. Instruktioner
1
Opret en ny klasse fil i dit projekt kaldet " DataTableHelper.vb "
2
Kopier nedenstående kopi i den nye fil: . Imports SystemImports System.DataImports System.IO
Public Class DataTableHelper
'' kan streame DataTable til Browser direkte , skal du indstille '' Response.Clear (); ' Response.Buffer = true; ' svar. ContentType = " application /vnd.ms - excel " ' Response.AddHeader ( "Content -Disposition ", " inline , filename = Clientes.xls ") ' Response.Charset = " " ' this.EnableViewState = false ' FAKTISK CODE ' ProduceCSV (dt, Response.Output , true) «
Public Shared Sub ProduceCSV ( ByVal dt Som DataTable , _ByVal httpStream Som System.IO.TextWriter , ByVal WriteHeader Som Boolean ) Dim i Da Int32Dim j Som Int32If WriteHeader Så
Dim arr ( dt.Columns.Count ) As String
For i = 0 Til dt.Columns.Count - . 1arr (i) = dt.Columns ( i) ColumnNamearr (i) = GetWriteableValue ( arr ( i)) NexthttpStream.WriteLine ( String.Join ("," , arr. ) ) End If
j = 0 Til dt.Rows.Count - 1Dim dataArr (dt Columns.Count ) Da StringFor i = 0 Til dt.Columns.Count - 1Dim o As Object = dt.Rows ( j) ( i) dataArr (i) = GetWriteableValue ( o) NexthttpStream.WriteLine ( String.Join ("," , dataArr ) ) Næste
End Sub
# region " CSVProducer " Public Shared Sub ProduceCSV ( ByVal dt Som DataTable , _ByVal fil Som System.IO.StreamWriter , ByVal WriteHeader Som Boolean ) < br >
Dim i Da Int32Dim j Som Int32If ( WriteHeader ) ThenDim arr ( dt.Columns.Count ) Da StringFor i = 0 Til dt.Columns.Count - . 1arr (i) = dt.Columns ( i) ColumnNamearr (i ) = GetWriteableValue ( arr ( i)) Nextfile.WriteLine ( String.Join ("," , arr. ) ) End If
j = 0 Til dt.Rows.Count - 1Dim dataArr ( dt.Columns . Tæl ) Da StringFor i = 0 Til dt.Columns.CountDim o As Object = dt.Rows ( j) ( i) dataArr (i) = GetWriteableValue ( o) Nextfile.WriteLine ( String.Join ("," , dataArr ) ) NextEnd Sub
Public Shared Function GetWriteableValue ( ByVal o As Object ) Som StringIf o Er Nothing OrElse IsDBNull ( o) ThenReturn "" ElseIf ( o.ToString (). indexOf ("," ) = -1) ThenReturn o.ToString () ElseReturn "\\ " " + o.ToString ( ) + " \\ " "
End IfEnd Function # End Region
end klassen
3
Udfør følgende kode til at bruge den nye klasse , og se csv output til konsollen : Dim dt Som DataTable = ds.Tables (0) Dim sWriter Som IO.StreamWriter = Ny IO.StreamWriter ( "c: \\ yourCSVFile.csv " ) DataTableHelper.ProduceCSV (dt, sWriter , sand)