Vb.net 将数据从CSV文件导入datagrid
我有一个应用程序UWP,其中我将数据从CSV文件导入ListView 如何将数据放入数据网格?现在,我使用以下代码将数据放入列表视图: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")
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您可以检查文档的安全设置。确保您具有读/写权限。如果我在另一台电脑上安装了我的应用程序,该应用程序是否正常工作?