Как удалить столбец без заголовка без заголовка в DataGridView в форме окна c # - PullRequest
0 голосов
/ 24 февраля 2019

** Я импортирую данные Excel в datagridview, и я должен использовать эти данные в моих текстовых документах, используя параметры.Но, к сожалению, нумерация Excel также входит в gridview.Это без заголовка, который я не могу удалить либо использовать с помощью индекса либо что-нибудь.Nore может скрывать, потому что у него нет заголовка.поэтому из-за этого я не могу выбрать ни одну строку из-за этого первого безымянного заголовка.Пожалуйста, помогите мне, мне действительно нужна помощь.либо скажите мне любой код, используя этот код, если я могу импортировать данные из Excel без нумерации строк в Excel (средний красный столбец рис.).Любой способ уничтожить первый столбец без заголовка **

enter image description here

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;

Ответы [ 3 ]

0 голосов
/ 24 февраля 2019

Просто удалите столбец из 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 "";
        }

Это должно работать !!

0 голосов
/ 25 февраля 2019

** Для каждого столбца необходимо указать, что именно требуется компьютеру 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 "";
    }
0 голосов
/ 24 февраля 2019

Не делает видимость столбца false, как показано ниже, решает вашу проблему:

this.dataGridView1.Columns[0].Visible = false;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...