Hvordan skrive innhold Datasett til Excel-fil i Visual Basic 2005
Microsoft Excel er regneark programvare som lar deg legge inn og administrere store mengder data i regneark. Hvis du ønsker å overføre data til Excel fra en database, er Visual Basic et Microsoft programmeringsspråk som gjør det mulig å 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.
Bruksanvisning
1 Opprett en ny klasse fil i prosjektet "DataTableHelper.vb".
2 Kopier følgende kopien til den nye filen:
importen System
importen System.Data
importen System.IO
Public Class DataTableHelper
'
' Can stream DataTable to Browser, directly, you need to set
'
' Response.Clear()
GÅ
' Response.Buffer= true
GÅ
' Response.ContentType = \"application/vnd.ms-excel\"
GÅ
' Response.AddHeader(\"Content-Disposition\", \"inline;filename=Clientes.xls\");
' Response.Charset = \"\"
GÅ
' this.EnableViewState = false
' ACTUAL CODE
' ProduceCSV(dt, Response.Output, true)
GÅ
'
Offentlig Delt Sub ProduceCSV (ByVal dt Som Datatable, _
ByVal httpStream Som System.IO.TextWriter, ByVal WriteHeader As Boolean)
Dim i As Int32
Dim j As Int32
If WriteHeader Then
Dim arr (dt.Columns.Count) As String
For i = 0 For å dt.Columns.Count - 1
arr (i) = dt.Columns (i) .ColumnName
arr (i) = GetWriteableValue (arr (i))
neste
httpStream.WriteLine (String.Join (\ & quot; \ & quot ;, arr))
Slutt om
For j = 0 For å dt.Rows.Count - 1
Dim dataArr (dt.Columns.Count) As String
For i = 0 For å dt.Columns.Count - 1
Dim o Som Object = dt.Rows (j) (i)
dataArr (i) = GetWriteableValue (o)
neste
httpStream.WriteLine (String.Join (\ & quot; \ & quot ;, dataArr))
neste
End Sub Region \ "CSVProducer \"
Public Shared Sub ProduceCSV(ByVal dt As DataTable, _
ByVal fil Som System.IO.StreamWriter, ByVal WriteHeader As Boolean)
Dim i As Int32
Dim j As Int32
If (WriteHeader) Then
Dim arr(dt.Columns.Count) As String
For i = 0 To dt.Columns.Count - 1
arr(i) = dt.Columns(i).ColumnName
arr(i) = GetWriteableValue(arr(i))
Next
file.WriteLine(String.Join(\",\", arr))
End If
For j = 0 For å dt.Rows.Count - 1
Dim dataArr (dt.Columns.Count) As String
For i = 0 For å dt.Columns.Count
Dim o Som Object = dt.Rows (j) (i)
dataArr (i) = GetWriteableValue (o)
neste
file.WriteLine (String.Join (\ & quot; \ & quot ;, dataArr))
neste
End Sub
Offentlig Delt Funksjon GetWriteableValue (ByVal o As Object) As String
Hvis o Er Ingenting orelse IsDBNull (o) Så
Return \ & quot; \ & quot;
ElseIf (. O.ToString () IndexOf (\ & quot; \ & quot;) = -1) Så
Retur o.ToString ()
Ellers
Return \ & quot; \\\ & quot; \ & quot; + O.ToString () + \ & quot; \\ \ & Quot; \ & quot;
Slutt om
End Function slutt Region
end klassen
3 Utfø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, sann)
Hint
- Du kan sende til noen tekstforfatter stream, slik som konsoll eller en HTTP-respons.