Как вывести столбец по индексам

я загружаю в проект Excel таблицу

private void button1_Click(object sender, EventArgs e)
    {
        //поиск файла Excel
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.Multiselect = false;
        ofd.DefaultExt = "*.xls;*.xlsx";
        ofd.Filter = "Microsoft Excel (*.xls*)|*.xls*";
        ofd.Title = "Выберите документ Excel";
        if (ofd.ShowDialog() != DialogResult.OK)
        {
            MessageBox.Show("Вы не выбрали файл для открытия", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information);
            return;
        }
        string xlFileName = ofd.FileName; //имя нашего Excel файла

        //рабоата с Excel
        Excel.Range Rng;
        Excel.Workbook xlWB;
        Excel.Worksheet xlSht;
        int iLastRow, iLastCol;

        Excel.Application xlApp = new Excel.Application(); //создаём приложение Excel
        xlWB = xlApp.Workbooks.Open(xlFileName); //открываем наш файл           

        xlSht = xlWB.ActiveSheet;//активный лист

        iLastRow = xlSht.Cells[xlSht.Rows.Count, "A"].End[Excel.XlDirection.xlUp].Row; //последняя заполненная строка в столбце А
        iLastCol = xlSht.Cells[1, xlSht.Columns.Count].End[Excel.XlDirection.xlToLeft].Column; //последний заполненный столбец в 1-й строке

        Rng = (Excel.Range)xlSht.Range["A1", xlSht.Cells[iLastRow, iLastCol]]; //пример записи диапазона ячеек в переменную Rng
                                                                               //Rng = xlSht.get_Range("A1", "B10"); //пример записи диапазона ячеек в переменную Rng
                                                                               //Rng = xlSht.get_Range("A1:B10"); //пример записи диапазона ячеек в переменную Rng
                                                                               //Rng = xlSht.UsedRange; //пример записи диапазона ячеек в переменную Rng

        var dataArr = (object[,])Rng.Value; //чтение данных из ячеек в массив            
                                            //xlSht.get_Range("K1").get_Resize(dataArr.GetUpperBound(0), dataArr.GetUpperBound(1)).Value = dataArr; //выгрузка массива на лист

        //закрытие Excel
        xlWB.Close(true); //сохраняем и закрываем файл
        xlApp.Quit();
        releaseObject(xlSht);
        releaseObject(xlWB);
        releaseObject(xlApp);

        //заполняем DataTable для последующего заполнения dataGridView
        DataTable dt = new DataTable();
        DataRow dtRow;
        //добавляем столбцы в DataTable
        for (int i = 1; i <= dataArr.GetUpperBound(1); i++)
            dt.Columns.Add((string)dataArr[1, i]);

        //цикл по строкам массива
        for (int i = 2; i <= dataArr.GetUpperBound(0); i++)
        {
            dtRow = dt.NewRow();
            //цикл по столбцам массива
            for (int n = 1; n <= dataArr.GetUpperBound(1); n++)
            {
                dtRow[n - 1] = dataArr[i, n];
            }
            dt.Rows.Add(dtRow);
        }

        this.dataGridView1.DataSource = dt; //заполняем dataGridView


    }
    private void releaseObject(object obj)
    {
        try
        {
            System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
            obj = null;
        }
        catch (Exception ex)
        {
            obj = null;
            MessageBox.Show("Unable to release the Object " + ex.ToString());
        }
        finally
        {
            GC.Collect();
        }
    }

Далее я создаю comboBox 1 и 2 в которых мы выбераем столбец, для того что-бы вывести этот столбец я зоздаю List

public List<string> TableColomnListX { get; set; } = new List<string>();
  
public List<string> TableColomnListY { get; set; } = new List<string>();

потом в comboBox я добавляю TableColomnListX[i] в нём он хранит информацию о том, что это именно за столбец

comboBox1.Items.Clear();
        for (int i = 0; i < dataGridView1.Columns.Count; i++)
        {
            comboBox1.Items.Add(dataGridView1.Columns[i].HeaderCell.Value.ToString());

            TableColomnListX.Add(new string(""));
            TableColomnListX[i] = dataGridView1.Columns[i].HeaderCell.Value.ToString();

            
        }
  comboBox2.Items.Clear();
        for (int i = 0; i < dataGridView1.Columns.Count; i++)
        {
            comboBox2.Items.Add(dataGridView1.Columns[i].HeaderCell.Value.ToString());

            TableColomnListY.Add(new string(""));
            TableColomnListY[i] = dataGridView1.Columns[i].HeaderCell.Value.ToString();

        }

Потом создю int a и int b. В которых храница информация, какой индекс у выбраного столбца.

int a = comboBox1.SelectedIndex;     


int b = comboBox2.SelectedIndex;

Подскажите что надо сделать, что бы он вывел столбец по этим индексам (a и b)


Ответы (0 шт):