【问题标题】:How to Remove an untitled column without header in DataGridView in c# window form如何在 c# 窗口窗体中删除 DataGridView 中没有标题的无标题列
【发布时间】:2019-02-24 10:38:36
【问题描述】:

**我正在将 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# winforms ado.net window


    【解决方案1】:

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

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

    【讨论】:

    • 先生,我已经使用了 this.dataGridView1.Columns[0].Visible = false;和 this.dataGridView1.Columns.Remove(""); .但问题是这不适用于直到列
    • 先生。我们有两种方法来删除一列 1) 是标题名称 2) 是索引号。我同意,但问题是这个红色圆圈也不在索引中,当我索引 0 或 1 时,它从标题开始,而不是从无标题开始
    • 先生,请问我可以通过 Skype 与您联系吗?对于这个问题的解决方案
    【解决方案2】:

    只需从 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 "";
            }
    

    这应该可以!!

    【讨论】:

    • 先生,我已经使用了 this.dataGridView1.Columns[0].Visible = false;和 this.dataGridView1.Columns.Remove(""); .但问题是这不适用于直到列
    • 先生。我们有两种方法来删除一列 1) 是标题名称 2) 是索引号。我同意,但问题是这个红色圆圈也不在索引中,当我索引 0 或 1 时,它从标题开始,而不是从无标题开始
    • 先生,请问我可以通过 Skype 与您联系吗?对于这个问题的解决方案
    【解决方案3】:

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

    错误提示“索引超出范围”。这意味着您正在尝试使用无效值来索引对象。如果你有两本书,我要求你给我第三本书,你会觉得我很有趣。这是电脑看着你很有趣。你说 - “创建一个集合”。所以它做到了。但最初收藏是空的:它不仅没有任何东西 - 它没有空间容纳任何东西。 “它没有手”。

    然后你说“集合的第一个元素现在是'ItemID'”。电脑说“我从来没有被要求为'第一个项目'创造空间。”我没有手握住你给我的这个东西。

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

    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 "";
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-01
      • 2016-10-26
      相关资源
      最近更新 更多