VB.NET导入CSV到ListView时无需修改原文件删除双引号的实现方法
解决方案
你只需要在分割CSV每行内容后,对每个字段的双引号做全局替换即可,不需要修改原始CSV文件,修改后的完整实现代码如下:
Dim CSVTest As New List(Of String) ListView1.Clear() ' 打开文件选择窗口 Dim result As DialogResult = OpenFileDialog1.ShowDialog() ' 判断文件是否成功导入 If result = Windows.Forms.DialogResult.OK Then ' 获取选中的文件路径 Dim CSVFile As String = OpenFileDialog1.FileName ' 读取文件所有行到列表 CSVTest = File.ReadAllLines(CSVFile).ToList ' 添加数据表头 Dim ColNames As List(Of ColumnHeader) = New List(Of ColumnHeader) ' 分割表头行,同时去掉每个字段的双引号 Dim ColumnArray() As String = CSVTest(0).Split(";").Select(Function(s) s.Replace("""", "")).ToArray() For i = 0 To ColumnArray.Count - 1 ColNames.Add(New ColumnHeader) ColNames(i).Name = ColumnArray(i) ColNames(i).Text = ColumnArray(i) Next ListView1.Columns.AddRange(ColNames.ToArray) ' 添加数据行 For I = 1 To CSVTest.Count - 1 ' 分割数据行,同时去掉每个字段的双引号 Dim col() As String = CSVTest(I).Split(";").Select(Function(s) s.Replace("""", "")).ToArray() Dim NewLVItem As ListViewItem = New ListViewItem(col(0)) NewLVItem.Name = col(0) For j = 1 To col.Count - 1 NewLVItem.SubItems.Add(col(j)) Next ListView1.Items.Add(NewLVItem) Next End If
修改说明
- 对表头行分割后的每个字段增加了
Replace("""", "")操作,直接删除字段中包含的所有双引号 - 对普通数据行分割后的每个字段也做了相同的双引号删除处理
- 所有修改都在内存中完成,不会对原始CSV文件产生任何改动
内容的提问来源于stack exchange,提问作者Dropkogel
相关产品推荐
相关产品推荐

