Microsoft Excel est un tableur qui vous permet d'entrer et de gérer de grandes quantités de données dans des feuilles de calcul. Si vous souhaitez transférer des données dans Excel à partir d'une base de données, Visual Basic est un langage de programmation de Microsoft qui vous permet de copier le contenu d'un ensemble de données dans un fichier Excel. Visual Basic a été conçu pour les programmeurs débutants et est principalement utilisé pour développer et personnaliser des applications Windows comme Word, PowerPoint et Excel. Instructions
1
Créer un nouveau fichier de classe dans votre projet appelé " DataTableHelper.vb "
2
Copiez le copie suivant dans le nouveau fichier : . Importations SystemImports System.DataImports System.IO
public Class DataTableHelper
'' pouvez écouter DataTable navigateur, directement , vous devez configurer '' Response.Clear (); " Response.Buffer = true; " Réponse . 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); '
public Shared Sub ProduceCSV ( ByVal dt Comme DataTable, _ByVal httpStream Comme System.IO.TextWriter , WriteHeader ByVal As Boolean ) i As Int32Dim j Comme Int32If WriteHeader Puis
Dim arr ( dt.Columns.Count ) As String
For i = 0 To dt.Columns.Count - . 1arr (i) = dt.Columns ( i) ColumnNamearr (i) = GetWriteableValue ( arr (i)) NexthttpStream.WriteLine ( String.Join ("," , arr ) ) End If
Pour j = 0 To dt.Rows.Count - 1Dim dataArr ( dt. Columns.Count ) Comme StringFor i = 0 To dt.Columns.Count - 1Dim o As Object = dt.Rows (j) ( i) dataArr (i) = GetWriteableValue ( o) NexthttpStream.WriteLine ( String.Join ("," , dataArr ) ) Suivant
End Sub
# Region " CSVProducer " public Shared Sub ProduceCSV ( ByVal dt Comme DataTable, fichier _ByVal Comme System.IO.StreamWriter , ByVal WriteHeader As Boolean ) < br >
Dim i Comme Int32Dim j Comme Int32If ( WriteHeader ) ThenDim arr ( dt.Columns.Count ) Comme StringFor i = 0 To dt.Columns.Count - . 1arr (i) = dt.Columns ( i) ColumnNamearr (i ) = GetWriteableValue ( arr (i)) Nextfile.WriteLine ( String.Join ("," , arr ) ) End If
Pour j = 0 To dt.Rows.Count - dataArr 1Dim ( dt.Columns . comptez ) Comme StringFor i = 0 To dt.Columns.CountDim o As Object = dt.Rows (j) ( i) dataArr (i) = GetWriteableValue ( o) Nextfile.WriteLine ( String.Join ("," , dataArr ) ) NextEnd Sous
Shared Function GetWriteableValue ( ByVal o As Object ) Comme StringIf o Est Rien OrElse IsDBNull ( o) ThenReturn "" ElseIf ( o.ToString (). IndexOf ( ",") = -1) ThenReturn o.ToString () ElseReturn "\\" " + o.ToString () + " \\ ""
End Function IfEnd # End Region
fin classe
3
exécuter le code ci-dessous pour utiliser la nouvelle classe , et de voir la sortie csv à la console: dt As DataTable = ds.Tables (0) swriter As IO.StreamWriter = New IO.StreamWriter ( "c: \\ yourCSVFile.csv " ) DataTableHelper.ProduceCSV ( dt , swriter , True)