如何在 c# window 窗体的 DataGridView 中删除没有 header 的无标题列

How to Remove an untitled column without header in DataGridView in c# window form

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

的第一列

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;

不使列对 false 的可见性可以解决您的问题:

this.dataGridView1.Columns[0].Visible = false;

只需从 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 而不是 这些是行 Headers 当你从 excel 导入数据,我不知道为什么,现在只需使用以下代码清除行 header ::

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

这应该行得通!!

**你需要告诉每一列计算机到底想要什么 20

错误显示 "The index is out of range"。这意味着您试图用无效的值索引一个对象。如果你有两本书,而我要你把第三本书给我,你会用滑稽的眼光看着我。这是计算机看着你很有趣。你说 - "create a collection"。确实如此。但最初集合是空的:不仅里面什么都没有——它没有 space 来容纳任何东西。 "It has no hands".

然后你说"the first element of the collection is now 'ItemID'"。电脑说"I never was asked to create space for a 'first item'."我没有手拿你给我的这个东西。

就您的代码而言,您创建了一个视图,但从未指定大小。你需要一个 **

dataGridView1.Columns[0].Name = "FileRow";
            dataGridView1.Columns[1].Name = "FIRSTNAME1";
            dataGridView1.Columns[2].Name = "LASTNAME1";
            dataGridView1.Columns[3].Name = "ADDRESS1";
            dataGridView1.Columns[4].Name = "CITY1";
            dataGridView1.Columns[5].Name = "STATE1";
            dataGridView1.Columns[6].Name = "ZIP1";
            dataGridView1.Columns[7].Name = "FIRSTNAME2";
            dataGridView1.Columns[8].Name = "LASTNAME2";
            dataGridView1.Columns[9].Name = "ADDRESS2";
            dataGridView1.Columns[10].Name = "CITY2";

foreach (DataGridViewRow row in this.dgvCount.Rows)
    {
        row.HeaderCell.Value = "";     // Use :: null  OR "";
    }