Tecnología

Inicio

Cómo escribir Contenido del conjunto de datos a archivo de Excel en Visual Basic 2005

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.IO

Clase 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 Then

arr 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 si

Para 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))
Siguiente

End 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 If

Para 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 Sub

Funció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ón

fin 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.