-
Cómo escribir Contenido del conjunto de datos a archivo de Excel en Visual Basic 2005
-
Microsoft Excel es un software de hoja de cálculo que le permite introducir y manejar grandes cantidades de datos en hojas de cálculo. Si desea transferir datos a Excel desde una base de datos, Visual Basic es un lenguaje de programación de Microsoft que le permite copiar el contenido de un conjunto de datos a un archivo de Excel. Visual Basic fue diseñado para los programadores principiantes y se utiliza principalmente para desarrollar y personalizar las aplicaciones de Windows como Word, PowerPoint y Excel.Instrucciones
1 Crear un nuevo archivo de clase en su proyecto llamado "DataTableHelper.vb".
2 Copia el siguiente copia en el nuevo archivo:
Sistema de importaciones
Imports System.Data
Imports System.IOClase pública DataTableHelper
'
' Can stream DataTable to Browser, directly, you need to set
'
' Response.Clear()IR
' Response.Buffer= true
IR
' Response.ContentType = \"application/vnd.ms-excel\"
IR
' Response.AddHeader(\"Content-Disposition\", \"inline;filename=Clientes.xls\");
' Response.Charset = \"\"IR
' this.EnableViewState = false
' ACTUAL CODE
' ProduceCSV(dt, Response.Output, true)IR
'
Public Shared Sub ProduceCSV (ByVal dt Como DataTable, _
ByVal httpStream Como System.IO.TextWriter, ByVal WriteHeader As Boolean)
Dim i As Int32
Dim j As Int32
If WriteHeader Thenarr dim (dt.Columns.Count) As String
Para i = 0 Para dt.Columns.Count - 1
arr (i) = dt.Columns (i) .ColumnName
arr (i) = GetWriteableValue (arr (i))
Siguiente
httpStream.WriteLine (string.join (\ & quot;, \ & quot ;, arr))
Terminara siPara j = 0 Para dt.Rows.Count - 1
Dim dataArr (dt.Columns.Count) As String
Para i = 0 Para dt.Columns.Count - 1
Dim o como objeto = dt.Rows (j) (i)
dataArr (i) = GetWriteableValue (o)
Siguiente
httpStream.WriteLine (string.join (\ & quot;, \ & quot ;, dataArr))
SiguienteEnd Sub Región \ "CSVProducer \"
Public Shared Sub ProduceCSV(ByVal dt As DataTable, _
archivo de ByVal como 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 IfPara j = 0 Para dt.Rows.Count - 1
Dim dataArr (dt.Columns.Count) As String
Para i = 0 Para dt.Columns.Count
Dim o como objeto = dt.Rows (j) (i)
dataArr (i) = GetWriteableValue (o)
Siguiente
file.WriteLine (string.join (\ & quot;, \ & quot ;, dataArr))
Siguiente
End SubFunción pública compartida GetWriteableValue (ByVal o Como Object) As String
Si o no es nada OrElse IsDBNull (o) A continuación,
Volver \ & quot; \ & quot;
ElseIf (. O.ToString () IndexOf (\ & quot;, \ & quot;) = -1) A continuación,
Volver o.ToString ()
Más
Volver \ & quot; \\\ & quot; \ & quot; + O.ToString () + \ & quot; \\ \ & Quot; \ & quot;Terminara si
End Function End Regiónfin de la clase
3 Ejecutar el siguiente código para utilizar la nueva clase, y ver la salida csv en la consola:
Dim dt Como DataTable = ds.Tables (0)
Dim swriter Como IO.StreamWriter = Nueva IO.StreamWriter (\ "c: \ yourCSVFile.csv \")
DataTableHelper.ProduceCSV (dt, swriter, True)Consejos y advertencias
- Puede dar salida a cualquier corriente TextWriter, como la Consola o una respuesta HTTP.