Microsoft Excel är kalkylblad programvara som gör att du kan mata och hantera stora mängder data i kalkylblad . Om du vill överföra data till Excel från en databas , är Visual Basic ett Microsoft programmeringsspråk som tillåter dig att kopiera innehållet i en uppsättning data till en Excel -fil . Visual Basic var avsedd för nybörjare programmerare och används främst för att utveckla och anpassa Windows-program som Word , PowerPoint och Excel
Du behöver : . .
textredigerare
1
Skapa en ny klass fil i ditt projekt som kallas " DataTableHelper . . Vb "
2
Kopiera följande kopiera in den nya filen :
Import System
Import System. Data
Import System. IO
public class DataTableHelper
"
" kan strömma DataTable till Browser , direkt , måste du ställa
"
" Response. Clear ( ) ;
" Response. Buffer=true ;
" Response. ContentType=" application /vnd. ms- excel " ,
" Response. AddHeader ( " Content- Disposition " , " inline ; filnamn=Clientes. xls ") ;
" Response. Charset=" ";
" detta . EnableViewState=false
' faktiska koden
" ProduceCSV ( DT , Response. Output , true );
"
Public Shared Sub ProduceCSV ( ByVal dt Som DataTable , _
ByVal httpStream Som System. IO. TextWriter , ByVal WriteHeader As Boolean )
Dim I As Int32
Dim j Som Int32
Om WriteHeader
Då
Dim arr ( dt. Columns. Count ) As String
För i=0 till dt. Columns. Count-1
arr (i)=dt. Columns (i ) . Kolumnnamn
arr (i)=GetWriteableValue ( arr (i) )
Nästa
httpStream. WriteLine ( String. Join (",", arr ) )
End If
för j=0 till dt. Rows. Count-1
Dim dataArr ( dt. Columns. Count ) As String
För i=0 till dt. Columns. Count-1
Dim o När Object=dt. Rows ( j ) ( i)
dataArr (i)=GetWriteableValue ( o )
Nästa
httpStream. WriteLine ( String. Join (",", dataArr ) )
Nästa
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 Int32
Dim j Som Int32
Om ( WriteHeader ) Sen
Dim arr ( dt. Columns. Count ) As String
För i=0 till dt. Columns. Count-1
arr (i)=dt. Columns (i ) kolumnnamn
arr (i)=GetWriteableValue ( arr ( i . ) )
Nästa
file. WriteLine ( String. Join (",", arr ) )
End If
för j=0 till dt. Rows. Count-1
Dim dataArr ( dt. Columns. Count ) As String
För i=0 till dt. Columns. Count
Dim o Som Object=dt. Rows ( j ) ( i)
dataArr (i)=GetWriteableValue (O )
Nästa
file. WriteLine ( String. Join (",", dataArr ) )
Nästa
End Sub
Public Shared Function GetWriteableValue ( ByVal o Som Object ) As String
Om o Är Ingenting OrElse IsDBNull ( o ) Sen
Return " "
ElseIf ( o. ToString () . indexOf (",")=-1 ) Sen
Return o. ToString ( )
Else
Return " \ " " + o. ToString ( ) + "\ " "
End If
End Function
# End . Region
slutet klass
3
Kör följande kod för att använda den nya klassen , och se CSV utdata till konsolen :
Dim dt Som DataTable=ds. Tables (0 )
Dim swriter Som IO. StreamWriter=Nya IO. StreamWriter ( "c : \ yourCSVFile. csv " )
DataTableHelper. ProduceCSV ( DT , swriter , sant)
tips och varningar
Du kan utgång till en textförfattare ström , t. ex. konsol eller ett HTTP-svar .