如何在VB.NET中将DataGridView中的数据导出到文本文件

如何在VB.NET中将DataGridView中的数据导出到文本文件,vb.net,Vb.net,我想知道代码,如何将DataGridView1中的内容导出到VB.NET中的文本文件中。 我正在使用Visual Studio 2019。该表将包括: 样本: ------------------------------------------------------------------------------------- | Item Code | Item Name | Item Description | Price | In-Stock | Supplier

我想知道代码,如何将
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...
多谢各位 [shannon]

试试这个

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)
您可以尝试以下代码:

    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()

假设在
DataGridView
的源中有一个
DataTable
。 创建为
StringBuilder
。 重新构造
数据表
。 循环遍历数据表中的行,将每行转换为对象数组。 将对象数组更改为具有少量Linq的字符串数组。 使用管道连接字符串数组,并将线附加到字符串生成器。 循环完成后,保存到文本文件

Private子按钮2\u单击(发送者作为对象,e作为事件参数)处理按钮2。单击
使某人成为新的架线工
Dim dt=DirectCast(DataGridView1.DataSource,DataTable)
对于dt.行中作为DataRow的每一行
Dim arr=row.ItemArray
Dim strArr=arr中的From元素
选择CStr(元件)
Dim rowString=String.Join(“|”,strArr)
sb.AppendLine(行字符串)
下一个
File.writealText(“C:\Users\xxxx\Desktop\MyGrid.txt”,sb.ToString)
MessageBox.Show(“完成”)
端接头

请与我们分享您迄今为止所做的任何尝试。如果没有,那么询问Stackoverflow就太早了。感谢您提供的代码,但我收到了
“Microsoft.VisualBasic.dll中发生了类型为'System.InvalidCastException'的未处理异常。其他信息:从字符串“|”到类型为'Double'的转换无效。已发生”
在代码
OPString=grid.Columns(i-1).HeaderText+“|”
处,我收到此错误
Trile.exe中发生了类型为“System.NullReferenceException”的未处理异常附加信息:对象引用未设置为对象实例。在
str=str&DataGridView1.Rows(a)、Cells(b)、Value.ToString&“|”行发生