2 / 2 / 0
Регистрация: 13.03.2011
Сообщений: 50
1

Чтение данных со 2 символа (Excel)

17.04.2011, 10:02. Показов 1786. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.

Осуществляется чтение данных из Excel. На форме Windows, есть несколько компонентов, с которых пользователь вводит нужную информацию, и получает нужный овтет:

Теперь о самой проблемме. В таблице, калонка "С" (persNo) номер сотрудника, данные форматированны в виде текста. То есть, номер сотрудника представляет собой 00278345, а в идеале должен представлять собой шестизначное число типа как 278345, но такое не на всех страницах, есть страницы, где номер сотрудника представляется в нормальном виде, то есть как 278345. У меня 2 textBox'a, в один из них пользователь вводит номер, а с другого получает ответ. Как правильно оформить условие. Я пытался как:
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
        
private void textBox1_TextChanged(object sender, EventArgs e)
        {
            for (int i = 0; i < persNo.Count; i++)
            {
                if (persNo.Count > 6)
                {
                    if (persNo[i].Substring(1,7) == textBox1.Text)
                    {
                        textBox2.Text = firstName[i] + " " + lastName[i];
                        label1.Text = "Position: " + position[i];
                        label2.Text = "Vendor: " + vendor[i];
                        label3.Text = "MOB: " + mobDemob[i];
                        label4.Text = "Comment: " + comment[i];
                        label5.Text = "Date: " + date[i];
                        label6.Text = "Vessel: " + vessel[i];
                        break;
                    }
                    else textBox2.Text = "";
                }
                else if (persNo.Count < 6)
                {
                    if (persNo[i] == textBox1.Text)
                    {
                        textBox2.Text = firstName[i] + " " + lastName[i];
                        label1.Text = "Position: " + position[i];
                        label2.Text = "Vendor: " + vendor[i];
                        label3.Text = "MOB: " + mobDemob[i];
                        label4.Text = "Comment: " + comment[i];
                        label5.Text = "Date: " + date[i];
                        label6.Text = "Vessel: " + vessel[i];
                        break;
                    }
                }
            }
        }
После многих попыток сдался и прибежал на форум, прошу помогите)))...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2011, 10:02
Ответы с готовыми решениями:

Чтение данных из Excel
Здравствуйте, проблема в следующем, как сделать чтение данных их excel? Есть таблица Excel вот...

Чтение данных с Excel
Всем привет, возникла трудность, не получается никак считать данные из Excel..

Чтение данных из Excel
Есть файл excel. В нем есть табличные данные, графики, диаграммы. Каждый лист имеет свое русское...

Чтение данных из Excel
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

7
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
17.04.2011, 11:26 2
Цитата Сообщение от John_XP Посмотреть сообщение
Как правильно оформить условие.
С похмелья болит голова и никак не могу понять самого вопроса...
0
2 / 2 / 0
Регистрация: 13.03.2011
Сообщений: 50
17.04.2011, 12:31  [ТС] 3
Может вступленние я непонятно написал, суть вот какая:

Есть персональный номер каждого сотрудника. Вот мой 211229. В WorkBook, на первом WorkSheet'е в колонке "С", этот номер показан как 00211229, что очень неудобно при поиске. То есть, если искать как 211229, то поиск не даст результатов, хотя конечно же целесообразней искать именно так. Трудность заключается еще в том, что в той же книге, но допустим на втором листе, данные записанны так как надо, то есть 211229.
В textBox1, куда пользователь вводит номер который он хочет найти, стоит такое условие:

C#
1
2
3
//...
if (persNo[i]==textBox1.Text)
//...
Так вот, какое условие необходимо, для того, чтобы он сначала проверял, есть ли эти 2 нолика впереди, если есть, то поиск осуществляется со 2 по 7 символ (из расчета как '01'.'234567'). А если нет, то полностью. Надеюсь понятно написанно?
0
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
17.04.2011, 12:52 4
Код человека строго восьмизначный или бывает и другое число знаков ? (если писать все цифры)
0
2 / 2 / 0
Регистрация: 13.03.2011
Сообщений: 50
17.04.2011, 12:54  [ТС] 5
Нет. Только 00211229 и 211229. Критерий поиска будет выполняться по оригинальному номеру 211229.
0
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
17.04.2011, 12:57 6
Пусть пользователь вводит значение в textBox1, а с ячейки таблицы считали значение в строку cl.
Тогда условие проверки можно сделать так и не заморачиваться:
C#
1
2
3
if (textBox1.Text.TrimStart(new char[] { '0' }) ==  cl.TrimStart(new char[] { '0' })) {
    MessageBox.Show("Значение найдено!");
}
Т.е. при сравнении игнорируются нули в начале строки
1
2 / 2 / 0
Регистрация: 13.03.2011
Сообщений: 50
17.04.2011, 13:18  [ТС] 7
Цитата Сообщение от Leax Посмотреть сообщение
Пусть пользователь вводит значение в textBox1, а с ячейки таблицы считали значение в строку cl.
Тогда условие проверки можно сделать так и не заморачиваться:
C#
1
2
3
if (textBox1.Text.TrimStart(new char[] { '0' }) ==  cl.TrimStart(new char[] { '0' })) {
    MessageBox.Show("Значение найдено!");
}
Т.е. при сравнении игнорируются нули в начале строки
Можно уточнить?

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
//...        
List<string> persNo = new List<string>();
//...
 
xlWorkBook = xlApp.Workbooks.Open(path, 0, true, 5, "", "", true, XlPlatform.xlWindows, "\n", true, true, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
     for (int i = 1; i < 300; i++)
            {
                //...
                persNo.Add(Convert.ToString(xlWorkSheet.get_Range("C" + i, "C" + i).Value));
                //....
            }
 
//...
 
for (int i = 0; i < persNo.Count; i++)
            {
                if (textBox1.Text.TrimStart(new char[] { '0' }) == persNo[i].TrimStart(new char[] { '0' }))
                {
                    textBox2.Text = firstName[i] + " " + lastName[i];
                    //...
                    break;
                }
                else textBox2.Text = "";
            }
Когда я делаю так, вылазить ошибка:
"NullReferenceException. Object reference not set to an instance of an object."
0
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
17.04.2011, 13:46 8
Цитата Сообщение от John_XP Посмотреть сообщение
Когда я делаю так, вылазить ошибка:
"NullReferenceException. Object reference not set to an instance of an object."
Где вылазит? Проверь отладчиком - может у тебя в месте ошибки одна из переменных равна null (не инициализирована), может список пустой... То что я тебе написал насчет отбрасывания нулей в начале- у меня работает
C#
1
2
3
            string s = "00123456";
            string s2 = s.TrimStart(new char[] { '0' });
            MessageBox.Show(s2); // 123456
0
17.04.2011, 13:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2011, 13:46
Помогаю со студенческими работами здесь

Чтение данных из Excel
Здравствуйте, уважаемые коллеги! Я полный новичок в anylogic, поэтому прошу сильно не пинать....

Чтение данных из Excel
Добрый день! Не уверен, что выбрал правильную ветку форума, но все же... Подскажите как можно...

Чтение данных из Excel и их запись в БД
Привет всем! Как реализовать чтение данных из Excel и их последующую запись в существующую...

Чтение данных из Excel с Visual C++
Здраствуйте. Нужно запрограммировать считывание данных из Excel-файла на Visual C++ (MVS 2005)....

Чтение данных из файла excel
Добрый день! Прошу показать простой пример чтение данных из файла excel. К примеру простого файла...

Чтение данных из Excel в GridView
Здравствуйте уважаемые форумчане и всем доброго времени суток. Проблема в следующем. Я уже очень...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru