Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Vytvorte nový súbor triedy v projekte s názvom " DataTableHelper.vb "
2
Skopírujte nasledujúci kópiu do nového súboru : . Dovoz SystemImports System.DataImports System.IO
Public Class DataTableHelper
'' Môže prenášať DataTable do prehliadača , priamo , musíte nastaviť '' Response.Clear ( ) ; " Response.Buffer = true ; " odozvy . ContentType = " application /vnd.ms - excel " ; " Response.AddHeader ( " Content - Dispozícia " , " inline ; filename = Clientes.xls " ) ; ' Response.Charset = " " ; " this.EnableViewState = false ' AKTUÁLNE CODE ' ProduceCSV ( dt , Response.Output , true ) ; "
Public Shared Sub ProduceCSV ( byval dt ako DataTable , _ByVal httpStream ako System.IO.TextWriter , byVal WriteHeader As Boolean ) Dim i ako Int32Dim j ako Int32If WriteHeader Potom
Dim arr ( dt.Columns.Count ) ako reťazec
i = 0 dt.Columns.Count - . 1arr ( i ) = dt.Columns ( i ) ColumnNamearr ( i ) = GetWriteableValue ( arr ( i ) ) NexthttpStream.WriteLine ( string.join ( " , " , arr ) ) End If
j = 0 dt.Rows.Count - 1Dim dataArr ( nem. Columns.Count ) Ako StringFor i = 0 To dt.Columns.Count - 1Dim o As Object = dt.Rows ( j ) ( i ) dataArr ( i ) = GetWriteableValue ( o ) NexthttpStream.WriteLine ( string.join ( " , " , dataArr ) ) Ďalšia
End Sub
# Region " CSVProducer " Public Shared Sub ProduceCSV ( byval dt ako DataTable , _ByVal súbor ako System.IO.StreamWriter , byVal WriteHeader As Boolean )
Dim i ako Int32Dim j As Int32If ( WriteHeader ) ThenDim arr ( dt.Columns.Count ) ako StringFor i = 0 To dt.Columns.Count - . 1arr ( i ) = dt.Columns ( i ) ColumnNamearr ( aj ) = GetWriteableValue ( arr ( i ) ) Nextfile.WriteLine ( string.join ( " , " , arr ) ) End If
j = 0 dt.Rows.Count - 1Dim dataArr ( dt.Columns . gróf ) Ako StringFor i = 0 dt.Columns.CountDim o As Object = dt.Rows ( j ) ( i ) dataArr ( i ) = GetWriteableValue ( o ) Nextfile.WriteLine ( string.join ( " , " , dataArr ) ) DalšíKonec Sub
Public Shared Function GetWriteableValue ( byVal o As Object ) Ako StringIf o je nič OrElse IsDBNull ( o ) ThenReturn " " ElseIf ( o.ToString ( ) . indexOf ( " , " ) = -1 ) ThenReturn o.ToString ( ) ElseReturn " \\ " " + o.ToString ( ) + " \\ " "
Koniec IfEnd Function # end kraj
end trieda
3
vykonať nasledujúci kód použiť novú triedu , a pozri CSV výstup na konzolu : Dim dt Ako DataTable = ds.Tables ( 0 ) Dim sWriter Ako IO.StreamWriter = Nové IO.StreamWriter ( "c : \\ yourCSVFile.csv " ) DataTableHelper.ProduceCSV ( dt , sWriter , pravda )
Copyright © počítačové znalosti Všetky práva vyhradené