First post here, im currently developing a little application which needs to export the data from my datagridview to a csv file. So far I have:

Dim gridData(DataGridView1.Rows.Count - 1) As String

For Each r As DataGridViewRow In DataGridView1.Rows
If r.IsNewRow Then Exit For
Dim cellValues(DataGridView1.Rows(r.Index).Cells.Count - 1) As String
For Each c As DataGridViewCell In DataGridView1.Rows(r.Index).Cells
cellValues(c.ColumnIndex) = c.Value.ToString
gridData(r.Index) = String.Join(",", cellValues)
Dim lines = From line In gridData _
Where line <> Nothing _
Select line

IO.File.WriteAllLines("C:\temp\file.csv", lines.ToArray)

This so far writes to the file but has no column headings. Any ideas?

Try the following code, it might be what you are looking for. This will import and export your data...

Imports System
Imports System.Data
Imports System.Data.OleDb
Imports System.IO

Code :

Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
       Dim intFileNameLength As Integer
       Dim strFileNamePath As String
       Dim strFileNameOnly As String

       If Not (UploadFile.PostedFile Is Nothing) Then
           strFileNamePath = UploadFile.PostedFile.FileName

           intFileNameLength = InStr(1, StrReverse(strFileNamePath), "\")

           strFileNameOnly = Mid(strFileNamePath, (Len(strFileNamePath) - intFileNameLength) + 2)
           Dim paths = Server.MapPath("/excelreading/")

           paths = paths & "Excel/"

           'If File.Exists(paths & strFileNameOnly) Then
           'lblMessage.Text = "Image of Similar name already Exist,Choose other name"
           If UploadFile.PostedFile.ContentLength > 40000 Then
               lblMessage.Text = "The Size of file is greater than 4 MB"
           ElseIf strFileNameOnly = "" Then
               Exit Sub
               strFileNameOnly = Session("AdminID") & "-" & Session("Acountry") & "-" & Format(Date.Today, "mm-dd-yyyy").Replace("/", "-") & ".xls"
               UploadFile.PostedFile.SaveAs(paths & strFileNameOnly)
               lblMessage.Text = "File Upload Success."
               Session("Img") = strFileNameOnly
           End If
       End If
       'End If

       Dim myDataset As New DataSet()
       Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
       "Data Source=" & Server.MapPath("/excelreading/") & "excel/" & strFileNameOnly & ";" & _
       "Extended Properties=Excel 8.0;"

       ''You must use the $ after the object you reference in the spreadsheet
       Dim myData As New OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn)
       myData.TableMappings.Add("Table", "ExcelTest")

       DataGrid1.DataSource = myDataset.Tables(0).DefaultView
   End Sub

   Private Sub btnExportToExcel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExportToExcel.Click
       ' Set the content type to Excel.
       Response.ContentType = "application/vnd.ms-excel"
       ' Remove the charset from the Content-Type header.
       Response.Charset = ""
       ' Turn off the view state.
       Me.EnableViewState = False

       Dim tw As New System.IO.StringWriter()
       Dim hw As New System.Web.UI.HtmlTextWriter(tw)

       ' Get the HTML for the control.
       ' Write the HTML back to the browser.
       ' End the response.
       lblMessage.Text = "For any more information , feel free to contact ...!!!"
   End Sub
This article has been dead for over six months. Start a new discussion instead.