Как я могу заполнить поле со списком в столбце Excel? C # - PullRequest
0 голосов
/ 23 января 2019

У меня есть данные в столбце B моего листа Excel, которые я хотел бы использовать для заполнения комбинированного списка, каждая ячейка в строке является значением в раскрывающемся списке comboBox.

        Excel.Application xlApp = new Excel.Application();
        Excel.Workbook xlWorkbook = xlApp.Workbooks.Open("X:\\Private\\Users\\Temp\\testexcel.xlsm");
        Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1];
        Excel.Range xlRange = xlWorksheet.Range["B1:B40"];



        foreach (var d in xlRange)
        {

           comboBox1.Items.Add(d);


        }

Мой код неКажется, не работает, у меня возникли проблемы с тем, где я должен приводить к строке, чтобы он не возвращался как system.COMobject, а вместо этого возвращается со всеми строками в ячейках Excel в качестве значений в comboBox.Должен ли я использовать массив или список или ни того, ни другого?Я правильно получаю диапазон столбцов?

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Понял, мне нужно было исправить некоторые соглашения об именах в Excel в моем выражении foreach и преобразовать их в строки внутри оператора!

            Excel.Application xlApp = new Excel.Application();
            Excel.Workbook xlWorkbook = xlApp.Workbooks.Open("X:\\Private\\Users\\Temp\\testexcel.xlsm");
            Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1]; 
            Excel.Range range = xlWorksheet.get_Range("B1:B40");


        foreach (Excel.Range item in range.Cells)
        {

            string lst = (string)item.Text;
            comboBox1.Items.Add(lst);
        }
0 голосов
/ 23 января 2019

Вместо добавления d к comboBox1, это работает, если вы добавите d.Value, как это?

comboBox1.Items.Add(d.Text);

(Вам может потребоваться привести к строке, хотя свойство .Text уже должно возвращать строку:

comboBox1.Items.Add((string)d.Text);

)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...