Nwlapcug.com


Come scrivere il contenuto del set di dati in File di Excel in Visual Basic 2005

Come scrivere il contenuto del set di dati in File di Excel in Visual Basic 2005


Microsoft Excel è un software di foglio di calcolo che consente di inserire e gestire grandi quantità di dati nei fogli di lavoro. Se si desidera trasferire dati in Excel da un database, Visual Basic è un linguaggio di programmazione di Microsoft che consente di copiare il contenuto di un dataset in un file di Excel. Visual Basic è stato progettato per i programmatori principianti e viene utilizzato principalmente per sviluppare e personalizzare le applicazioni di Windows come Word, PowerPoint ed Excel.

Istruzioni

1

Creare un nuovo file di classe nel progetto chiamato "DataTableHelper.vb".

2

Copiare il seguente nel nuovo file:
Imports System
Imports System. Data
Imports System.IO

Public Class DataTableHelper

'
' Can stream DataTable to Browser, directly, you need to set
'
' Response.Clear()

VAI

' Response.Buffer= true

VAI

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

VAI

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

VAI

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

VAI

'

Public Shared Sub ProduceCSV(ByVal dt As DataTable, _

ByVal httpStream As 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 To dt.Columns.Count - 1
arr(i) = dt.Columns(i).ColumnName
arr(i) = GetWriteableValue(arr(i))
Next
httpStream.WriteLine(String.Join(\",\", arr))
End If

For j = 0 To dt.Rows.Count - 1
Dim dataArr(dt.Columns.Count) As String
For i = 0 To dt.Columns.Count - 1
Dim o As Object = dt.Rows(j)(i)
dataArr(i) = GetWriteableValue(o)
Next
httpStream.WriteLine(String.Join(\",\", dataArr))
Next

End SubRegione \"CSVProducer\"

Public Shared Sub ProduceCSV(ByVal dt As DataTable, _

ByVal file As 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 To dt.Rows.Count - 1
Dim dataArr(dt.Columns.Count) As String
For i = 0 To dt.Columns.Count
Dim o As Object = dt.Rows(j)(i)
dataArr(i) = GetWriteableValue(o)
Next
file.WriteLine(String.Join(\",\", dataArr))
Next
End Sub

Public Shared Function GetWriteableValue(ByVal o As Object) As String
If o Is Nothing OrElse IsDBNull(o) Then
Return \"\"
ElseIf (o.ToString().IndexOf(\",\") = -1) Then
Return o.ToString()
Else
Return \"\\\"\" + o.ToString() + \" \\ \"\"

End If
End Function
Regione di fine

end class '

3

Eseguire il seguente codice per utilizzare la nuova classe e vedere l'output csv nella console:
Dim dt As DataTable = ds. Tables(0)
Dim sWriter come IO. StreamWriter = New IO. StreamWriter(\"c:\yourCSVFile.csv\")
DataTableHelper.ProduceCSV (dt, sWriter, True)

Consigli & Avvertenze

  • È possibile l'uscita a qualsiasi stream, TextWriter, quale la Console o una risposta HTTP.