Microsoft Excel er regneark programvare som lar deg legge inn og behandle store mengder data i regneark . Hvis du ønsker å overføre data til Excel fra en database , er Visual Basic en Microsoft programmeringsspråk som lar deg kopiere innholdet i et datasett til en Excel-fil . Visual Basic er designet for nybegynnere programmerere og er først og fremst brukes til å utvikle og tilpasse Windows-programmer som Word, PowerPoint og Excel. Instruksjoner
en
Opprett en ny klasse fil i prosjektet kalt " DataTableHelper.vb "
2
Kopier følgende kopiere inn den nye filen : . Imports SystemImports System.DataImports System.IO
Public Class DataTableHelper
'' Kan streame DataTable til nettleseren , direkte , må du stille '' Response.Clear (); ' Response.Buffer = true; ' Response . innholdstype = " 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 Delt Sub ProduceCSV ( ByVal dt Som DataTable , _ByVal httpStream Som System.IO.TextWriter , ByVal WriteHeader As Boolean ) Dim i As Int32Dim j As Int32If WriteHeader Deretter
Dim arr ( dt.Columns.Count ) As String
For i = 0 For å dt.Columns.Count - . 1arr ( i) = dt.Columns ( i) ColumnNamearr ( i) = GetWriteableValue (arr ( i) ) NexthttpStream.WriteLine ( String.Join ( "," , arr ) ) End If
For j = 0 For å dt.Rows.Count - 1Dim dataArr ( dt. Columns.Count ) Som StringFor i = 0 For å dt.Columns.Count - 1Dim o som objekt = DT.Rows ( j ) ( i) dataArr ( i) = GetWriteableValue (o ) NexthttpStream.WriteLine ( String.Join ( "," , dataArr ) ) Neste
End Sub
# Region " CSVProducer " Public Shared Sub ProduceCSV ( ByVal dt Som DataTable , _ByVal fil som System.IO.StreamWriter , ByVal WriteHeader As Boolean )
Dim i As Int32Dim j Som Int32If ( WriteHeader ) ThenDim arr ( dt.Columns.Count ) Som StringFor i = 0 For å dt.Columns.Count - . 1arr ( i) = dt.Columns ( i) ColumnNamearr (i ) = GetWriteableValue (arr ( i) ) Nextfile.WriteLine ( String.Join ( "," , arr ) ) End If
For j = 0 For å dt.Rows.Count - 1Dim dataArr ( dt.Columns . telle ) Som StringFor i = 0 For å dt.Columns.CountDim o som objekt = DT.Rows ( j ) ( i) dataArr ( i) = GetWriteableValue (o ) Nextfile.WriteLine ( String.Join ( "," , dataArr ) ) NesteSiste Sub
Offentlig Delt Funksjon GetWriteableValue ( ByVal o As Object) Som StringIf o Er Ingenting orelse IsDBNull (o ) ThenReturn " " ElseIf ( o.ToString ( ) . IndexOf ( "," ) = -1 ) ThenReturn o.ToString ( ) ElseReturn " \\" " + o.ToString ( ) +" \\ ""
End IfEnd Funksjon # End Region
end klassen
3
Kjør følgende kode for å bruke den nye klassen , og se csv utgang til konsollen : Dim dt Som DataTable = ds.Tables ( 0 ) Dim sWriter Som IO.StreamWriter = Ny IO.StreamWriter ( "c : \\ yourCSVFile.csv ") DataTableHelper.ProduceCSV ( dt, sWriter eller sann)