C# 用csv文件填充列表视图';内容包括组
因此,您在文本文件和列表视图中有一个csv列表。田地是 组,第1列,第2列,第3列,第4列,第5列 示例(所有字符串) 组必须是listviewgroup。第1列为listviewitem,第2列为第1列的第1子项,第3列为第1列的第2子项,第4列为第1列的第3子项,第5列为第1列的最后一子项 组和列2不是唯一的,所有其他列都是唯一的 最有效的方法是什么C# 用csv文件填充列表视图';内容包括组,c#,listview,C#,Listview,因此,您在文本文件和列表视图中有一个csv列表。田地是 组,第1列,第2列,第3列,第4列,第5列 示例(所有字符串) 组必须是listviewgroup。第1列为listviewitem,第2列为第1列的第1子项,第3列为第1列的第2子项,第4列为第1列的第3子项,第5列为第1列的最后一子项 组和列2不是唯一的,所有其他列都是唯一的 最有效的方法是什么 读取具有该结构的csv文件列表 填充listview 写入csv文件 我尝试的是: ListViewGroup k = new ListVie
ListViewGroup k = new ListViewGroup("group1");
ListViewGroup l = new ListViewGroup("group2");
ListViewGroup a = new ListViewGroup("group3");
listView1.Groups.AddRange(new ListViewGroup[] {a, k, l });
ListViewItem item1 = new ListViewItem("column1_1", 0);
item1.SubItems.Add("column2_1");
item1.SubItems.Add("column3_1");
item1.SubItems.Add("column4_1");
item1.SubItems.Add("column5_1");
item1.Group=k;
listView1.Items.Add(item1);
ListViewItem item2 = new ListViewItem("column1_2", 0);
...
作为基础。但这种方法使自动化变得困难。尤其是当有更多的组被重用时。因此,我正在寻找一种正常的方法。这里有一些你可以尝试的东西,如果这对你有用,请向我汇报。 我将首先从一个列表视图开始,这样您就可以了解事物如何工作的要点
FileStream fileStreamNew = File.Open("C:\\myCSVFile.csv", FileMode.Open, FileAccess.Read);
StreamReader streamRead = new StreamReader(fileStreamNew);
string strView = streamRead.ReadToEnd();
streamRead.Close();
fileStreamNew.Close();
String[] strArray = strView.Split(new char[] { ',' });
foreach (string strValue in strArray)
{
listView1.Items.Add(strValue);
}
在导入和导出到.csv(或任何带分隔符的文件)方面,在Microsoft.VisualBasic命名空间中有一个名为TextFieldParser的类(有点令人惊讶)。您只需将它指向文件,说出分隔符是什么,然后在调用ReadLine()时返回一个字符串[]。您还可以定义注释标记,确保只导入所需的数据 最棒的是异常处理——如果行的格式出乎意料,就会抛出错误的dexceptions 查看更多详细信息
我已经用了很多次了,它从来没有让我失望过!也使您的代码更易于阅读。您尝试过什么吗?请在这里发布。您可以发布几行CSV文件吗?它必须是一个列表视图,您可以将值读入。。?您能将它们读入数据网格吗?与listview相比有什么优势?取决于加载listview后要执行的操作。。如果您希望以表/网格格式查看数据,那么DataGrid可以工作。但我不确定在填充ListView后,您想要对数据做什么
FileStream fileStreamNew = File.Open("C:\\myCSVFile.csv", FileMode.Open, FileAccess.Read);
StreamReader streamRead = new StreamReader(fileStreamNew);
string strView = streamRead.ReadToEnd();
streamRead.Close();
fileStreamNew.Close();
String[] strArray = strView.Split(new char[] { ',' });
foreach (string strValue in strArray)
{
listView1.Items.Add(strValue);
}