0 / 0 / 1
Регистрация: 26.04.2015
Сообщений: 40
1
.NET 4.x

Поиск в Microsoft Excel

14.02.2016, 14:49. Показов 631. Ответов 2

Author24 — интернет-сервис помощи студентам
Доброго времени суток, господа. Столкнулся вот с какой траблой, нужна функция, которая по алгоритму быстрого поиска найдет в листе Excel артикул и вернет true если есть такой артикул и false если такого артикула нету.
MSDN послал меня сюда https://msdn.microsoft.com/en-... 1k99a.aspx
Сделал все вроде бы как положено, но ругается на параметры передаваемые в Range(get_Range) в строке 23.

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
60
61
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Office.Interop.Excel;
 
namespace Price_Lists_ver._0._1_beta
{
    class Kite
    {
        private bool flag;
        private string search = "blin";
        public bool Search_F(string article,string path)
        {
            try
            {
                var ObjExel = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Range currentFind = null;
            Microsoft.Office.Interop.Excel.Range firstFind = null;
            Microsoft.Office.Interop.Excel.Range search = ObjExel.Range["B9", "B312"];
            var objWorkbook = ObjExel.Workbooks.Open(path, false, 5, Missing.Value, Missing.Value,
                false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, Missing.Value, true, false, 0, true, false, false);
            var objWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)objWorkbook.Sheets[1];
            currentFind = objWorksheet.Cells.Find(article, Missing.Value, Missing.Value,
                Microsoft.Office.Interop.Excel.XlLookAt.xlPart, Missing.Value,
                Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext, Missing.Value, Missing.Value, Missing.Value);
            
                while (currentFind!=null)
                {
                    if (firstFind == null)
                        firstFind = currentFind;
                    else if (currentFind.get_Address(Microsoft.Office.Interop.Excel.XlReferenceStyle.xlA1) == firstFind.get_Address(Microsoft.Office.Interop.Excel.XlReferenceStyle.xlA1))
                    {
                        if (currentFind == null)
                            flag = false;
                        else
                        {
                            flag = true;
                        }
                        break;
                    }
                }
            
                /*search = Convert.ToString(objExelCells.Value2);
                if (search == article)
                    flag=true;
                else
                    flag=false;*/
                ObjExel.Quit();
            }
            catch (SystemException ex)
            {
                MessageBox.Show(ex.ToString());
            }
            return flag;
        }
    }
}
Кликните здесь для просмотра всего текста
Поиск в Microsoft Excel
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2016, 14:49
Ответы с готовыми решениями:

поиск решения в Microsoft Office Excel 2003
Помогите пожалуйста с решением задач на поиск решения в Microsoft Office Excel 2003... 1)Вы хотите...

Microsoft.Office.Interop.Excel.Application процессы Excel в памяти компьютера
Добрый день, коллеги! Программа работает с файлами Excel. В каждой процедуре я указываю, что...

Работа с документами Excel без Microsoft.Office.Interop.Excel
всем добрый день все дело в том что для своих программ я использую БД Excel но! однако не все...

Работа с Excel через Microsoft.Office.Interop.Excel
Необходимо реализовать програмку взаимодействующую с Excel в режиме реального времени. Проблем...

2
160 / 148 / 92
Регистрация: 30.03.2011
Сообщений: 569
14.02.2016, 16:07 2
Рано начал создавать Range. Сначала нужно открыть книгу, потом нужный Sheet и только потом создавать необходимый Range.
1
0 / 0 / 1
Регистрация: 26.04.2015
Сообщений: 40
15.02.2016, 12:47  [ТС] 3
Цитата Сообщение от MVK Посмотреть сообщение
Рано начал создавать Range. Сначала нужно открыть книгу, потом нужный Sheet и только потом создавать необходимый Range.
Блин точно, спасибо большое просмотрел что то немного)

Добавлено через 20 минут
Цитата Сообщение от MVK Посмотреть сообщение
Рано начал создавать Range. Сначала нужно открыть книгу, потом нужный Sheet и только потом создавать необходимый Range.
А не подскажешь, у меня стоит диапазон B9 - B312 но поиск идет все равно почему то по всему док-ту и не по строгому совпадению, а частичному.

Добавлено через 8 минут
Цитата Сообщение от MVK Посмотреть сообщение
Рано начал создавать Range. Сначала нужно открыть книгу, потом нужный Sheet и только потом создавать необходимый Range.
Все спасибо, разобрался, не туда диапазон задал)
0
15.02.2016, 12:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2016, 12:47
Помогаю со студенческими работами здесь

Cannot quit Microsoft Excel при попытки закрыть Excel
Cannot quit Microsoft Excel - кто-нибудь знает в результате чего возникает такое сообщение при...

Не могу записать в файл Excel при Microsoft.Office.Interop.Excel.Application.Visible = False
Коллеги, доброго времени суток. Столкнулся с такой проблемой. Не могу записать в файл, когда...

Связывание данных Microsoft Excel с базой данных Microsoft Access
Всем Добрый День! У меня есть вопрос: Подскажите, возможно ли создать и как создать связь таблицы...

Экспорт в Excel: Прекращена работа программы "Microsoft Excel"
Файл сохраняется успешно, но поле строки excelApp.Quit(); Появляется окно ошибки Excel: ...


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

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

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