Как экспортировать данные в DataGridView в текстовый файл в VB.NET - PullRequest
0 голосов
/ 11 декабря 2019

Я хотел бы знать код, как экспортировать содержимое в DataGridView1 в текстовый файл в VB.NET. Я использую Visual Studio 2019. Таблица будет содержать:

Пример:

-------------------------------------------------------------------------------------
| Item Code | Item Name | Item Description      | Price    | In-Stock | Supplier    |
-------------------------------------------------------------------------------------
|12345      |Cupboard   |a small sized cupboard |Rs.15,000 |15        |ABC Industry |
-------------------------------------------------------------------------------------
|45689      |Chair      |a small chair          |Rs.10,000 |10        |ABC Industry |
-------------------------------------------------------------------------------------
and so on...

И в текстовом файле данные выше будут сохранены как

12345|Cupboard|a small sized cupboard|15000|15|ABC Industry
45689|Chair|a small chair|10000|10|ABC Industry
and so on...

Спасибо [Шеннон]

Ответы [ 3 ]

0 голосов
/ 11 декабря 2019

Вы можете попробовать этот код:

    Dim sw As System.IO.StreamWriter = My.Computer.FileSystem.OpenTextFileWriter(filepath, True)

    Dim str As String = String.Empty
    For a As Integer = 0 To DataGridView1.RowCount - 1
        str = String.Empty
        For b As Integer = 0 To DataGridView1.ColumnCount - 1
            str = str & DataGridView1.Rows(a).Cells(b).Value.ToString & "|"
        Next
        str = str.Substring(0, str.Length - 1)
        sw.WriteLine(str)
    Next
    sw.Close()
0 голосов
/ 11 декабря 2019

Предполагается, что DataTable в источнике вашего DataGridView. Создать как StringBuilder. Восстановить DataTable. Перебирайте строки в таблице данных, превращая каждую строку в массив объектов. Измените массив объектов на массив строк с небольшим Linq. Соедините строковый массив с каналом и добавьте строку к строителю строки. По завершении цикла сохраните в текстовый файл.

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim sb As New StringBuilder
    Dim dt = DirectCast(DataGridView1.DataSource, DataTable)
    For Each row As DataRow In dt.Rows
        Dim arr = row.ItemArray
        Dim strArr = From element In arr
                     Select CStr(element)
        Dim rowString = String.Join("|", strArr)
        sb.AppendLine(rowString)
    Next
    File.WriteAllText("C:\Users\xxxx\Desktop\MyGrid.txt", sb.ToString)
    MessageBox.Show("Finished")
End Sub
0 голосов
/ 11 декабря 2019

Попробуйте это

Dim OPString As String=""

Dim SW As StreamWriter = My.Computer.FileSystem.OpenTextFileWriter(filepath, True)

    Dim grid as DatagridView = DataGridView1
    'print col header names
    For i = 1 To grid.Columns.Count
        OPString  = grid.Columns(i - 1).HeaderText & "|"
    Next
    SW.WriteLine(OPString)
    OPString=""

'Clear the code above if you don't want headers to be added everytime


    'print data
    For i = 0 To grid.RowCount - 2
        For j = 0 To grid.ColumnCount - 1
            OPString = grid(j, i).Value & "|"
        Next
    Next
 SW.WriteLine(OPString)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...