Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
26 / 26 / 15
Регистрация: 20.10.2012
Сообщений: 180
1

Поиск ячейки в excel и передача значения в текстбоксы

06.03.2014, 15:59. Просмотров 2224. Ответов 11
Метки нет (Все метки)

Есть таблица excel, которая содержит:
Дисциплина|Часов в неделю|Лекций в неделю
Менеджмент|4 |2
Маркетинг |2 |1

В тексбокс вводит Название дисциплины и в остальных двух текстбоксах получаем часы в неделю и лекции..

Подскажите, как это реализовать.....
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.03.2014, 15:59
Ответы с готовыми решениями:

Задать значения ячейки excel, в зависимости от значения другой ячейки
Всем, доброго времени суток. Нужно помощь при работе в excel. Перечитал кучу форумов, кое-что на...

Изменения формата ячейки Excel средствами VBA в зависимости от значения другой ячейки
Здравствуйте. Столкнулся с проблемой. Необходимо на листе Excel Залить, предположим, ячейку "C4"...

Ячейки DataGridView как текстбоксы
Если навести курсор мыши на элемент Текстбокс (с текстом или без), то вид курсора меняется с...

Передача значения ячейки в переменную.
Доброго дня. Ворос такой: есть файл .xls, надо брать значение из диапозона ячеек, и сравнивать их...

11
26 / 26 / 15
Регистрация: 20.10.2012
Сообщений: 180
06.03.2014, 18:15  [ТС] 2
я делал экспорт из эекселя в листвью и наоборот, а как в данном случае сделать не доходит
0
Заблокирован
06.03.2014, 19:41 3
Как получить значение из конкретной ячейки, скажем A4 (или с координатами [1, 4]) - Вы знаете?
Этого здесь достаточно.
0
26 / 26 / 15
Регистрация: 20.10.2012
Сообщений: 180
07.03.2014, 17:31  [ТС] 4
Попробовал так брать значения из ячеек, вручную задавал столбцы и номер строки, все работает.
Но как сделать так, как я описал в теме не знаю
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
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                
                Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
                                                                                                                                                                      
                Microsoft.Office.Interop.Excel.Workbook ObjWorkBook = ObjExcel.Workbooks.Open(openFileDialog1.FileName, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
                
                Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
                ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
 
                string c = "I";
                int i = 8;
                string l = "L";
                
                Microsoft.Office.Interop.Excel.Range range = ObjWorkSheet.get_Range(c + i.ToString(), c + i.ToString());
                
                textBox2.Text = range.Text.ToString();
                
                Microsoft.Office.Interop.Excel.Range range1 = ObjWorkSheet.get_Range(l + i.ToString(), l + i.ToString());
                
                textBox5.Text = range1.Text.ToString();
              
                ObjExcel.Quit();
 
            }
0
Заблокирован
07.03.2014, 18:29 5
Ищете строку с введённым названием дисциплины, получаете значения двух других Cell'ов строки.
0
26 / 26 / 15
Регистрация: 20.10.2012
Сообщений: 180
08.03.2014, 10:22  [ТС] 6
Пробовал просто искать ячейку с предметом, но не получилось...
Как исправить?
Ошбика: Use of unassigned local variable 'poisk'
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
            //книга Excel
            Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
            ObjExcel.Visible = false;
 
            Microsoft.Office.Interop.Excel.Workbook ObjWorkBook = ObjExcel.Workbooks.Open(Application.StartupPath + @"\plan.xls",
                      Type.Missing, true, Type.Missing,
    "WWWWW", "WWWWW", Type.Missing, Type.Missing, Type.Missing,
     Type.Missing, Type.Missing, Type.Missing, Type.Missing,
     Type.Missing, Type.Missing);
 
            Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
            ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
 
            //Поиск ячейки
            int i = 1;
            string predmet = textBox1.Text;
            string poisk;
            
            while (poisk != predmet)
            {         
                Microsoft.Office.Interop.Excel.Range range = ObjWorkSheet.get_Range("A" + i,Type.Missing);
                poisk = Convert.ToString(range.Value2);
                i++;
            }
            if (poisk == predmet)
            {
                System.Windows.Forms.MessageBox.Show("ДА!!!");
            }
            else
            {
                System.Windows.Forms.MessageBox.Show("НЕТ!!!");
            }
            ObjExcel.Quit();
        }
0
Заблокирован
08.03.2014, 11:40 7
leobrn, вы просто не присвоили начального значения этой переменной:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
string poisk="";
                 Microsoft.Office.Interop.Excel.Range range = ObjWorkSheet.get_Range("A" + i, Type.Missing);
                while (poisk != predmet)
                {
                    poisk = Convert.ToString(range.Value2);
                    i++;
                    range = ObjWorkSheet.get_Range("A" + i, Type.Missing);
                    if (i == 150) break;
                }
                if (poisk == predmet)
                {
                    System.Windows.Forms.MessageBox.Show("ДА!!!");
                    i--;
                    range = ObjWorkSheet.get_Range("B" + i, Type.Missing);
                    textBox3.Text = Convert.ToString(range.Value);
                    range = ObjWorkSheet.get_Range("C" + i, Type.Missing);
                    textBox4.Text = Convert.ToString(range.Value);
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show("НЕТ!!!");
                }
                ObjExcel.Quit();
1
26 / 26 / 15
Регистрация: 20.10.2012
Сообщений: 180
08.03.2014, 11:50  [ТС] 8
Ev_Hyper, пробовал еще одним способом, все находит, но когда нету такого предмета программа выдает ошибку. Тут подобная ошибка?
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
//книга Excel
            Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
            ObjExcel.Visible = false;
 
            Microsoft.Office.Interop.Excel.Workbook ObjWorkBook = ObjExcel.Workbooks.Open(Application.StartupPath + @"\plan.xls",
                      Type.Missing, true, Type.Missing,
    "WWWWW", "WWWWW", Type.Missing, Type.Missing, Type.Missing,
     Type.Missing, Type.Missing, Type.Missing, Type.Missing,
     Type.Missing, Type.Missing);
 
            Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
            ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
 
            //Поиск ячейки
            string predmet = textBox1.Text;
            string poisk;
 
            Microsoft.Office.Interop.Excel.Range range = ObjWorkSheet.Cells.Find(predmet);
            poisk = Convert.ToString(range.Value2);
 
            if (poisk == predmet)
            {
                System.Windows.Forms.MessageBox.Show(poisk);
            }
            else
            {
                System.Windows.Forms.MessageBox.Show("NO!!!");
            }
            ObjExcel.Quit();
        }
0
6211 / 3512 / 899
Регистрация: 28.10.2010
Сообщений: 5,926
08.03.2014, 11:59 9
Лучше подключиться к Excel файлу как к базе данных или открыть через ClosedXML. Оба способа будут работать быстрее.
1
Заблокирован
08.03.2014, 12:19 10
leobrn, какую ошибку выдает?
0
26 / 26 / 15
Регистрация: 20.10.2012
Сообщений: 180
08.03.2014, 15:42  [ТС] 11
Ev_Hyper, Object reference not set to an instance of an object на строке poisk = Convert.ToString(range.Value2);
0
Заблокирован
10.03.2014, 10:31 12
Петррр, а вы не подскажите есть ли краткая инструкция по работе с ClosedXML (хотелось бы еще и на русском)

leobrn, незнаю, с такой ошибкой пока еще не сталкивался. Какой вы запрос делаете?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2014, 10:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Поиск ячейки в excel
тут немного наваял пользуясь просторами интернета и совсем запутался что нужно то мне: 1) Найти...

Использование значения ячейки Excel
Доброго времени суток! Подскажите пожалуйста, каким образом можно взять значение ячейки и записать...

Задать значения ячейки excel
Доброго дня! подскажите пожалуйста, как в приложенном файле сделать возможность сортировки по коду...

Поиск ячейки по значению Excel
Уважаемые форумчане, столкнулся со следующей проблемой. Есть кусок кода, который в столбце В6,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.