Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 11.03.2023
Сообщений: 4

Чтение из Excel и запись массива в combobox

11.03.2023, 13:22. Показов 389. Ответов 2

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Прошу не кидаться тапками, я только учусь)
Пишу программу для создания отчета в Excel. Задумка у меня следующая следующая:
Считывается Excel файл в двумерный динамический массив, по первому столбцу и первой строке заполняются 2 разных комбобокса(изделие и операция). Остальные строки и столбцы заполнены множителем стоимости операции относительно изделия. Потом, при помощи формы с dataGrindView создается отчет.
Вопрос следующий: при заполнении массива правильно определяется количество строк и столбцов, но комбобоксы не заполняются текстом ячейки, в них находятся цифры от 1 до указанного значения, подскажите как решить проблему, код прилагается, пока не растащил по классам, извиняюсь за грязь:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
public readonly string _file = "C:\\Users\\Iidakra\\Desktop\\Изделия и нормы.xlsx"; // Файл со всеми нормами
        public readonly string _newFile = "C:\\Users\\Iidakra\\Desktop\\Отчет.xlsx"; // Пустой Excel файл, в который будет сохранятся отчет
 
        
        public void openFile()
        {
            Excel.Application ObjWorkExcel = new Excel.Application();
 
            Excel.Workbook ObjWorkBook = ObjWorkExcel.Workbooks.Open(_file, 0, true, 5, " ", " ",
                    false, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
 
            Excel.Worksheet ObjWorkSheet = (Excel.Worksheet)ObjWorkBook.Sheets[1];
 
            var lastCell = ObjWorkSheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell);
 
            int lastColumn = (int)lastCell.Column;// сохраним непосредственно требующееся в дальнейшем
            int lastRow = (int)lastCell.Row;
 
            string[,] list = new string[lastCell.Column, lastCell.Row];
 
            for (int i = 0; i < (int)lastCell.Column; i++)
                for (int j = 0; j < (int)lastCell.Row; j++)
                    list[i, j] = ObjWorkSheet.Cells[j + 1, i + 1].Text.ToString();
 
            ObjWorkBook.Close(false, Type.Missing, Type.Missing);
            ObjWorkExcel.Quit();
            GC.Collect(); 
        }
 
        public void products() // Заполнение изделий в комбобокс
        {
 
            Excel.Application ObjWorkExcel = new Excel.Application();
 
            Excel.Workbook ObjWorkBook = ObjWorkExcel.Workbooks.Open(_file, 0, true, 5, " ", " ",
                    false, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
 
            Excel.Worksheet ObjWorkSheet = (Excel.Worksheet)ObjWorkBook.Sheets.get_Item(1);
 
            var lastCell = ObjWorkSheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell);
           
            for (int j = 1; j < (int)lastCell.Row; j++)
                comboBoxProductName.Items.Add(j);
        }
 
        public void operations() // Заполнение операций в комбобокс
        {
            Excel.Application ObjWorkExcel = new Excel.Application();
 
            Excel.Workbook ObjWorkBook = ObjWorkExcel.Workbooks.Open(_file, 0, true, 5, " ", " ",
                    false, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
 
            Excel.Worksheet ObjWorkSheet = (Excel.Worksheet)ObjWorkBook.Sheets.get_Item(1);
 
            var lastCell = ObjWorkSheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell);
 
            for (int i = 1; i < (int)lastCell.Column; i++)
                comboBoxOperationName.Items.Add(i);   
        }
Файл, с которым работаю - прикрепляю
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.03.2023, 13:22
Ответы с готовыми решениями:

Как связать два ComboBox так, чтобы при заполнении одного ComboBox он соответствовал со значением другого ComboBox
Здравствуйте. Помогите мне, пожалуйста, сделать это через SQL запрос! У меня есть одна таблица -...

При тестировании скорости чтения и записи на ПЗУ, скорость чтения больше скорости записи
Требовалось написать программу определения производительности жесткого диска (чтение/запись)....

Чтение и запись в ini через combobox
Нужна помощь в C# Windows Forms, нужно сделать запись и чтение списка клиентов, из ini-файла в...

2
0 / 0 / 0
Регистрация: 11.03.2023
Сообщений: 4
11.03.2023, 13:23  [ТС]
Забыл про файл, прошу прощения
Вложения
Тип файла: xlsx Изделия и нормы.xlsx (10.6 Кб, 3 просмотров)
0
312 / 143 / 77
Регистрация: 23.08.2015
Сообщений: 455
11.03.2023, 14:06
Вы здесь ComboBox заполняете перечислителем, а не значениями из Excel:
C#
1
comboBoxOperationName.Items.Add(i);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.03.2023, 14:06
Помогаю со студенческими работами здесь

Считать данные из ячейки excel, и записать её в combobox
Как считать данные из ячейки excel. Что бы после это её можно было выбрать в combobox? Пробовал...

Установить выбранное значение в первом combobox во второй combobox
Добрый день! Есть вопрос: Есть 2 формы, на каждой из форм есть по одному комбобоксу, оба...

ComboBox.DataSource и DataView: как заполнить ComboBox
Добрый вечер! Прочитал в книге, что &quot;В результирующем DataView, будут видимы все столбцы исходный...

DataGridTemplateColumn с ComboBox. Как подключить ItemSource к ComboBox из кода
Есть привязка к таблице и простые стобцы отлично выводят данные, даже DataGridComboBoxColumn к...

Не получается передать список элементов combobox одной формы в combobox другой
Есть две формы, на главной есть список комбобокс, на доченей тоже есть комбобокс... что в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru