Hvordan skrive innhold Datasett til Excel-fil i Visual Basic 2005

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()

' Response.Buffer= true

' Response.ContentType = \"application/vnd.ms-excel\"

' Response.AddHeader(\"Content-Disposition\", \"inline;filename=Clientes.xls\");
' Response.Charset = \"\"

' this.EnableViewState = false
' ACTUAL CODE
' ProduceCSV(dt, Response.Output, true)

'

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.