Ruan Ruan - 5 months ago 48
Vb.net Question

VB.net | Save data from DataGridView to text file (Line per line)

The application I designed so far has a DataGridView which loads data from a text file line per line.

All I want is for the code to save the (first row, first column) on the first line as a string, then (first row, second column) on the second line, etc.

Here is an example of what my table looks like:

|-------------------------------------------------------|
| ID | Date | Height | Weight | BMI | Units |
|-------------------------------------------------------|
| 01 | 16/06 | 1.74 | 64 | 20.9 | Metric |
| 02 | 17/06 | 1.74 | 63 | 20.6 | Metric |
|-------------------------------------------------------|


So from this example, after the data has been saved to the text file it should look exactly like this:

01
16/06
1.74
64
20.9
Metric
02
17/06
1.74
63
20.6
Metric


I came across some excellent code which does this with tabs, instead of a next line, here it is:

dgvMeasures.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText
dgvMeasures.SelectAll()
IO.File.WriteAllText(fileName, dgvMeasures.GetClipboardContent.GetText.TrimEnd)
dgvMeasures.ClearSelection()


NOTE: The DataGridView is called dgvMeasures

Also please note that I cannot provide anything that I have already tried since there is nothing I can do, I have no idea what to do.

So if there is anyone who could help, it would be greatly appreciated

Answer

To do this, you just need to use a writer, and go through it in the way you want.

Using writer As New System.IO.StreamWriter(filePath)
    For row As Integer = 0 To dgvMeasures.RowCount - 1
        For col As Integer = 0 To dgvMeasures.ColumnCount - 1
            writer.WriteLine(dgvMeasures.Rows(row).Cells(col).Value.ToString)
        Next
    Next
End Using

This will go through each column for each row (as you describe), and then go to the next row.

I am sure you have a reason for writing the text file like this, but if you want to read it back in at some point, I would really recommend using a tab-delimited (or similar) format.