首页 > 解决方案 > 如何在 c# 窗口窗体中删除 DataGridView 中没有标题的无标题列

问题描述

**我正在将 excel 数据导入 datagridview,我必须使用参数将这些数据用于我的 word 文档。但不幸的是,excel 编号也包含在 gridview 中。它没有标题,我无法删除任何使用索引的任何内容。nore 可以隐藏,因为它没有标题。所以正因为如此,我无法选择任何行,因为这是第一个无标题标题。请帮助我,我真的需要帮助。如果我可以从 excel 中导入数据而无需 excel 的行编号(图片的平均红色圆圈列),请使用该代码告诉我任何代码。以任何方式破坏没有标题的第一列**

在此处输入图像描述

OpenFileDialog openfile = new OpenFileDialog();
        openfile.Filter = "XLS files (*.xls, *.xlt)|*.xls;*.xlt|XLSX files (*.xlsx, *.xlsm, *.xltx, *.xltm)|*.xlsx;*.xlsm;*.xltx;*.xltm|ODS files (*.ods, *.ots)|*.ods;*.ots|CSV files (*.csv, *.tsv)|*.csv;*.tsv|HTML files (*.html, *.htm)|*.html;*.htm";
        openfile.FilterIndex = 2;
        if (openfile.ShowDialog() == DialogResult.OK)
        {
            ExcelFile ef = ExcelFile.Load(openfile.FileName);




            DataGridViewConverter.ExportToDataGridView(ef.Worksheets.ActiveWorksheet, this.dataGridView1, new ExportToDataGridViewOptions() { ColumnHeaders = true  });
            this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

标签: c#winformsado.netwindow

解决方案


只需从 DataGridViewColumnCollection 中删除列即可:

this.dataGridView1.Columns.Remove("");

这必须有效,我的代码示例

private void AddRow()
    {
        this.dgvCount.Columns.Add("", "");
        this.dgvCount.Columns.Add("Stat", "Stat");
        this.dgvCount.Columns[""].Width = 100;
        this.dgvCount.Columns["Stat"].Width = 100;


        this.dgvCount.Rows.Add("1", "100");
        this.dgvCount.Rows.Add("2","200");
        this.dgvCount.Rows.Add("3","300");
        this.dgvCount.Rows.Add("4", "400");

        this.dgvCount.Columns.Remove("");
    }

更新

我放大图片并注意到这不是 DataGridViewColumn而不是这些是行标题,当您从 excel 导入数据时它们是文本,我不知道为什么,现在只需使用以下代码清除行标题的文本::

//Remove text from Row Header Cell
        foreach (DataGridViewRow row in this.dgvCount.Rows)
        {
            row.HeaderCell.Value = "";     // Use :: null  OR "";
        }

这应该工作!


推荐阅读