Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/32: Рейтинг темы: голосов - 32, средняя оценка - 4.81
5 / 5 / 3
Регистрация: 06.08.2011
Сообщений: 43

Как организовать поиск нужной информации в Excel

06.08.2011, 21:05. Показов 5811. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!!! Подскажите какой-нибудь алгоритм более быстрого писка информации из ячеек Excel.
Задача такая есть некоторая информация(номер телефона 89111111111) она находится в textBox по нажатию на кнопку (поиск) программа обращается к файлу excel после чего находит там нужную ячейку и выводит информацию о индексе к примеру.Главная проблема в том как ускорить поиск например по такому коду он длится около 40 сек при 16000 записей в столбце!!!вот пример моего поиска
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
if (openFileDialog1.ShowDialog() == DialogResult.OK)
             {
                 ObjWorkBook = ObjExcel.Workbooks.Open("D:\\база.xlsx", 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
                ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];//Выбираем таблицу(лист).
                         
                int i = 0;
                string t;// переменная для ячейки
 
                int kk = 0;//переменная для заполнения таблицы
                do            
                {
                    i++;
                    range = ObjWorkSheet.get_Range("J" + i.ToString(), "J" + i.ToString());//Выбираем область таблицы. (в нашем случае просто ячейку)
                    t = range.Text.ToString();//чтение данных                 
                    if (t == dateTimePicker1.Text)
                    {
                       
                        reser = i;//срока имеющая совпадения
 
 
                        dataGridView1.Rows.Add();//добавление строк
                         
                        for (int m = 0 ; m < 13; m++)
                        {
                            range = ObjWorkSheet.get_Range(abc[m] + reser.ToString(), abc[m] + reser.ToString());//дата
                            dataGridView1[m, kk].Value = range.Text.ToString();// заполняется таблица совпадений
                            }
                        kk++;
                    }
 
                } while (t != "");
             }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.08.2011, 21:05
Ответы с готовыми решениями:

Поиск нужной информации в ячейках таблицы Excel
Нужно найти в файле excel все возможные слова с названием &quot;Тут что то написано&quot;, а напротив слов их значения (неважно какие, хоть 1 или 2)...

Поиск нужной информации в логе виндовс7
Я настроил компьютер на выключение в определённое время (с помощью планировщика задач) и включение (через биос). Можно ли где-нибудь...

Граббер сайта и поиск на нем нужной информации
Всем привет. Как можно грабнуть сайт и как осуществить навигацию сайтом для поиска нужной информации (введение данных, слик на кнопках и...

2
 Аватар для Etrimus
399 / 366 / 54
Регистрация: 23.05.2010
Сообщений: 716
06.08.2011, 22:46
Попробуй воспользоваться тем, что даёт сам Эксель. Я записал действие поиска в обычном Эксель файле в макрос. Вот такой макрос получился:
VB.NET
1
2
3
4
5
6
7
8
9
Sub Макрос1()
' Макрос1 Макрос
'
 
'
    Cells.Find(What:="Вася", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
End Sub
Как я понял, у ячеек есть метод Find(). Им и стоит попробовать воспользоваться, попробой на Шарп переписать.
0
5 / 5 / 3
Регистрация: 06.08.2011
Сообщений: 43
07.08.2011, 11:05  [ТС]
Попробовал Find() на Шарпе, как бы работает да вот только индекс вернуть не могу. он мне возвращает результат поиска. Нашел пример в msdn:
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
private void FindValue()
{
    this.Range["A1", missing].Value2 = "Barnacle";
    this.Range["A2", missing].Value2 = "Seashell";
    this.Range["A3", missing].Value2 = "Star Fish";
    this.Range["A4", missing].Value2 = "Seashell";
    this.Range["A5", missing].Value2 = "Clam Shell";
 
    Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
        this.Controls.AddNamedRange(this.Range["A1", "A5"],
        "namedRange1");
 
    // Find the first occurrence of "Seashell".
    Excel.Range Range1 = namedRange1.Find("Seashell", missing, missing,
        Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByColumns,
        Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext,
        false, false, missing);
 
    // Find the next occurrence of "Seashell".
    Range1 = namedRange1.FindNext(Range1);
 
    // Return to the first occurrence of "Seashell".
    Range1 = namedRange1.FindPrevious(Range1);
 
    // Cut the range with the first "Seashell" and copy it to cell B1.
    Microsoft.Office.Tools.Excel.NamedRange namedRange2 =
        this.Controls.AddNamedRange(Range1, "namedRange2");
    namedRange2.Cut(this.Range["B1", missing]);
}
да вот только его не запустить пишет что в строчке Microsoft.Office.Tools.Excel.NamedRange пропущена ссылка на сборку (Tools).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.08.2011, 11:05
Помогаю со студенческими работами здесь

Как организовать поиск данных в Excel
Как организовать поиск данных в Excel?

Поиск нужной информации пользователем выдающийся списком и краткой информацией о файле
Задачи программы: Поиск нужной информации пользователем выдающийся списком и краткой информацией о файле Есть множество вордовских...

Как в Excel организовать максимально быстрый поиск среди миллиона значений ?
Пришлось делать поиск на листе Экселя. Однако записей там около миллиона и данные в четырёх столбцах. Функция Find работает медленно,...

Как организовать поиск в 1С 8.2? Нужно организовать поиск, например, по ФИО?
Например ситуация: мне из списка надо найти &quot;Марьина Любовь Викторовна&quot; и что-бы по ней вышла вся информация, т.е. я открываю отчет и там...

Поиск информации в файле Excel
Всем привет, ситуация следующая, есть папки с именами &quot;105&quot; &quot;109&quot; &quot;210&quot; имеется таблица .xlsx где 1-ый столбец 3х значное число, а второй...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 31.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 30.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru