You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中Split拆分Excel数据后在ListView横向列显示问题求助

解决ListView横向列显示拆分后字符串的问题

你的核心问题是当前代码每次调用lvName.Items.Add(splitCurrent[j])都会新增一行,导致内容纵向排列。要实现横向按列显示,需确保以下几点并修改代码:

关键前提

  • 必须将ListView的View属性设置为Details(这是显示多列的必要视图模式,可在设计器设置,或代码中指定)
  • 先添加对应数量的列,再将拆分后的字符串项作为同一行的主项和子项添加

修正后的完整代码

private void btnExcelReader_Click(object sender, EventArgs e)
{
    long lastRow = excelRange.Rows.Count;
    int rowTotal = 0;
    for (int i = 1; i < lastRow; i++)
    {
        if (excelRange.Cells[i, 1].Value2 != null)
        {
            rowTotal++;
        }
    }

    // 关键:设置ListView为Details视图,确保能显示多列
    lvName.View = View.Details;
    // 清空现有内容和列,避免重复
    lvName.Columns.Clear();
    lvName.Items.Clear();

    for (int i = 1; i < rowTotal; i += 4)
    {
        char[] separator = new char[] { ' ' };
        string current = excelRange.Cells[i, 1].Value2?.ToString();
        if (string.IsNullOrEmpty(current)) continue;

        string[] splitCurrent = current.Split(separator, StringSplitOptions.RemoveEmptyEntries);
        if (splitCurrent.Length == 0) continue;

        // 首次处理时,根据拆分后的项数创建对应列
        if (lvName.Columns.Count == 0)
        {
            for (int col = 0; col < splitCurrent.Length; col++)
            {
                lvName.Columns.Add($"列 {col + 1}");
            }
        }

        // 创建一行数据:第一个项作为主项,其余作为子项(对应后续列)
        ListViewItem rowItem = new ListViewItem(splitCurrent[0]);
        for (int j = 1; j < splitCurrent.Length; j++)
        {
            rowItem.SubItems.Add(splitCurrent[j]);
        }
        // 将整行添加到ListView
        lvName.Items.Add(rowItem);
    }

    lvName.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
    lvName.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
}

说明

  1. 先设置View = View.Details:这是多列显示的基础,没有这个设置,添加子项也不会显示为列
  2. 清空列和项:避免重复加载时出现冗余内容
  3. 创建列:根据第一次拆分得到的项数生成对应列(如果Excel每行拆分后的项数一致,这样就足够;如果不一致,可改为每次处理都检查列数,不足则补充)
  4. 整行添加:将拆分后的所有项放到同一个ListViewItem中,主项对应第一列,子项依次对应后续列,这样就能实现横向排列

内容的提问来源于stack exchange,提问作者Nicolas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 13:31:02