Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 将数据从CSV文件导入datagrid_Vb.net_Csv_Uwp_Datagrid - Fatal编程技术网

Vb.net 将数据从CSV文件导入datagrid

Vb.net 将数据从CSV文件导入datagrid,vb.net,csv,uwp,datagrid,Vb.net,Csv,Uwp,Datagrid,我有一个应用程序UWP,其中我将数据从CSV文件导入ListView 如何将数据放入数据网格?现在,我使用以下代码将数据放入列表视图: Dim CsvRows = New ObservableCollection(Of String)() Dim picker = New Windows.Storage.Pickers.FileOpenPicker() picker.ViewMode = PickerViewMode.List picker.FileTypeFilter.Add(".csv")

我有一个应用程序UWP,其中我将数据从CSV文件导入ListView

如何将数据放入数据网格?现在,我使用以下代码将数据放入列表视图:

Dim CsvRows = New ObservableCollection(Of String)()

Dim picker = New Windows.Storage.Pickers.FileOpenPicker()
picker.ViewMode = PickerViewMode.List
picker.FileTypeFilter.Add(".csv")

Dim file = Await picker.PickSingleFileAsync()

CsvRows.Clear()

Using csvReader = New CsvParse.CsvFileReader(Await file.OpenStreamForReadAsync())
        Dim row = New CsvParse.CsvRow()

        While csvReader.ReadRow(row)
            Dim newRow = ""

            For i = 0 To row.Count
                newRow += row(i) + ","

                i += 1
            Next

            CsvRows.Add(newRow)
        End While

End Using

GridTabacchi.ItemsSource = CsvRows
将数据从CSV文件导入datagrid

通常,我们经常使用covert将csv文件转换为可以直接绑定到
DataGrid
列的集合。这是你可以参考的官方文件。我将在下面提供示例代码

模型类

Public Class Item
    Public Property Id As String
    Public Property Title As String
    Public Property Link As String
    Public Property Type As String
    Public Property Remark As String
    Public Property Time As String
End Class
代码隐藏

Private Sub DataGrid_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
    Using reader = New StreamReader("Assets\Archive.csv", True)

        Using csv = New CsvReader(reader)
            Dim records = csv.GetRecords(Of Item)()

            For Each item In records
                Items.Add(item)
            Next
        End Using
    End Using

    MyDataGrid.ItemsSource = Items
End Sub
使
DataGridTextColumn
基于您的模型类,并像下面那样绑定每个属性

<controls:DataGrid.Columns>
    <controls:DataGridTextColumn
        Width="*"
        Binding="{Binding Id}"
        Header="ID"
        Tag="Id"
        />
    <controls:DataGridTextColumn
        Width="*"
        Binding="{Binding Title}"
        Header="Title"
        Tag="Title"
        />
    <controls:DataGridComboBoxColumn
        Width="*"
        Binding="{Binding Link}"
        Header="Link"
        ItemsSource="{x:Bind source}"
        Tag="Link"
        />
    <controls:DataGridTextColumn
        Width="*"
        Binding="{Binding Type}"
        Header="Type"
        Tag="Type"
        />
    <controls:DataGridTextColumn
        Width="*"
        Binding="{Binding Remark}"
        Header="Remark"
        Tag="Remark"
        />
    <controls:DataGridTextColumn
        Width="*"
        Binding="{Binding Time}"
        Header="Time"
        Tag="Time"
        />
</controls:DataGrid.Columns>

我在公司的VB.NET应用程序中创建了一个.CSV上传文件,以显示在网格中。我就是这样做的:

Dim dt as DataTable = New DataTable
Dim firstLine As Boolean = True

 Dim sr As StreamReader = New StreamReader(txtFileLocation.Text.Trim())
     Do While sr.Peek() >= 0
         If firstLine Then
            firstLine = False
            Dim cols() As String = sr.ReadLine.Split(","c)
            For Each col As String In cols
                dt.Columns.Add(New DataColumn(col, GetType(String)))
             Next
          Else
             Dim data() As String = sr.ReadLine.Split(","c)
             dt.Rows.Add(data)
          End If
      Loop
 sr.Close()

 dataGrid.DataSource = dt


非常感谢你!从桌面加载CSV文件时,返回一个错误“对路径的访问被拒绝。如何解决此问题?请确保文件未在Excel或文档中打开。此外,右键单击该文件,检查属性并确保它不是只读的。该文件不是只读的,并且已关闭:/n您可以检查文档的安全设置。确保您具有读/写权限。如果我在另一台电脑上安装了我的应用程序,该应用程序是否正常工作?