C# CSV到ListView

C# CSV到ListView,c#,listview,csv,C#,Listview,Csv,我正在尝试将我的CSV文件导出到ListView ListView如下所示: 我设法导出csv文件,但它将所有内容都放在“名称”列中 有人有线索吗?:) 下面是它现在的样子: using (OpenFileDialog openFileDialog1 = new OpenFileDialog()) try { openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environm

我正在尝试将我的CSV文件导出到ListView

ListView如下所示:

我设法导出csv文件,但它将所有内容都放在“名称”列中

有人有线索吗?:)

下面是它现在的样子:

        using (OpenFileDialog openFileDialog1 = new OpenFileDialog())
    try
    {
        openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
        openFileDialog1.DefaultExt = "csv";
        openFileDialog1.Title = "Open file";
        openFileDialog1.Filter = "CSV (*.csv)|*.csv";
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            FileStream srcFS;
            srcFS = new FileStream(openFileDialog1.FileName, FileMode.Open);
            StreamReader srcSR = new StreamReader(srcFS,System.Text.Encoding.Default);
            do
            {
              string ins = srcSR.ReadLine();
              string[] columns = ins.Split(',');

              ListViewItem lvi = new ListViewItem(columns[0]);

              lvi.SubItems.Add(ins);

              for (int i = 1; i < columns.Count(); i++)
              {
                  lvi.SubItems.Add(columns[i]);
              }

              listView1.Items.Add(lvi);

            } while (true);
            srcSR.Close();
        }
    }
    catch (Exception errorMsg)
    {
        MessageBox.Show(errorMsg.Message,"Error reading a file",MessageBoxButtons.OK,MessageBoxIcon.Error);
    }
使用(OpenFileDialog openFileDialog1=new OpenFileDialog())
尝试
{
openFileDialog1.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
openFileDialog1.DefaultExt=“csv”;
openFileDialog1.Title=“打开文件”;
openFileDialog1.Filter=“CSV(*.CSV)|*.CSV”;
如果(openFileDialog1.ShowDialog()==DialogResult.OK)
{
文件流srcFS;
srcFS=newfilestream(openFileDialog1.FileName,FileMode.Open);
StreamReader srcSR=newstreamreader(srcFS,System.Text.Encoding.Default);
做
{
string ins=srcSR.ReadLine();
string[]columns=ins.Split(',');
ListViewItem lvi=新的ListViewItem(列[0]);
lvi.SubItems.Add(插件);
对于(int i=1;i
此时将整行添加为一个listviewitem。 首先,需要将行拆分为列:

string[] columns = ins.Split(';');
然后创建包含第一列的listviewitem

ListViewItem lvi = new ListViewItem(columns[0]);
然后遍历剩余的,并为每列添加一个子项:

for (int i = 1; i< columns.Count(); i++)
{
    lvi.SubItems.Add(columns[i]);
}

我已经从你问题的标题中删除了
[C#]
。标签不属于标题,它们属于问题本身的标签。它使事情更具可读性。test.Split(“;”);-测试是指从文件加载的字符串?对不起,我指的是ins.Split();我明白了,但是如何跳过第一行呢?(它添加了我的列名)我用升级的代码编辑了第一篇文章,我想我做了你告诉我的一切,但仍然没有正常工作:(你能更具体地说明什么不工作吗?我看到你用了a,而不是分号;作为分隔符,这在你的csv中正确吗?
for (int i = 1; i< columns.Count(); i++)
{
    lvi.SubItems.Add(columns[i]);
}
listView1.Items.Add(lvi);