|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - сканирование xls |
|
|
C/C++ - сканирование xls
|
Ветеран Сообщения: 908 |
Hi!
есть такая задача: нужно заглядывать в xls файлик, и если там какая-то ячейка выделена красным цветом, то в трее выводить об этом уведомление. |
|
Отправлено: 14:20, 23-02-2008 |
Старожил Сообщения: 369
|
Профиль | Отправить PM | Цитировать Есть уточнение - красный цвет в ячейке проставляется автоматически или ещё кем то кроме Вас?
А "трей" можно заменить всплывающей подсказкой - которая будет автоматически разворачивать окно программы с вашим файлом и находиться по середине экрана когда произойдёт событие с окрашиванием ячейки в красный цвет. Можно заменить "окрашивание ячейки в красный цвет" - "всплывающей подсказкой с указнием соответствующей ячейки". Словом - есть варианты |
Отправлено: 18:10, 23-02-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 908
|
Профиль | Отправить PM | Цитировать azbest, файл отчетности выполнения плана. Красным ячейка проставляется пользователем. А программка, лежащая на каждом компе, сканирует этот общий файл. И если в нем есть красная ячейка, выдавала бы предупреждение.
|
Отправлено: 18:15, 23-02-2008 | #3 |
Старожил Сообщения: 435
|
Профиль | Отправить PM | Цитировать Первый вариант - коннектитесь к Excel с открытым файлом и проверяете выделена ли ячейка. Как это сделать читаете в недрах справки по VBA, там это где-то было.
Второй - на LOR недавно была тема, что MS отркыла форматы документов Office, если это верно, то можно почитать их и тогда возможно получится проверять наличие ячейки не открывая файл в Exel. |
------- Отправлено: 12:51, 24-02-2008 | #4 |
Старожил Сообщения: 369
|
Профиль | Отправить PM | Цитировать Я не знаю как сканирует ваша програмка на каждом компьютере один общий для этого файл.
Но чисто теоретически я решил бы это так. Автоматически определил сколько в списке есть строк. Оформил цикл построчного просмотра конкретного столбца (скорее всего в нём и проставляются "атрибуты" просматриваемых ячеек) со считыванием "атрибутов" просматриваемой ячейки и если её фоновый цвет - красный, - записал бы её порядковый номер в какую нибудь новую строку, а в конце просмотра общего списка - вывел бы результат с адресами в любую свободную строку. А потом ещё бы оформил один макрос с перемещением по указанным адресам и предоставлением пользователю делать с этим адресами то что ему нужно по работе. |
|
Отправлено: 18:47, 25-02-2008 | #5 |
Старожил Сообщения: 435
|
Профиль | Отправить PM | Цитировать azbest, здесь основная проблема, как получить фоновый цвет ячейки, а пройтись в цикле по столбцу не проблема, все есть в справке по VBA.
|
------- Отправлено: 19:57, 25-02-2008 | #6 |
Старожил Сообщения: 181
|
Профиль | Отправить PM | Цитировать BlackEric, проблемы с определением цвета нет - http://forum.oszone.net/post-735336-5.html.
Surround, сколько компов в сети, и как часто надо опрашивать файл? Нагрузка-то на сеть возрастет... |
Отправлено: 21:15, 25-02-2008 | #7 |
Ветеран Сообщения: 908
|
Профиль | Отправить PM | Цитировать Alexej77, интервал опроса настраивается.
VBA? но ведь цель - сделать это средствами C#. Хотя как вариант, можно просто опросить текст, ведь в выделенной ячейне он что-то типа "не выполнено" и более нигде не встречается |
Отправлено: 00:26, 26-02-2008 | #8 |
Старожил Сообщения: 181
|
Профиль | Отправить PM | Цитировать Surround, на VBA пример того, как определить цвет ячейки. На C# примерно также, я думаю, будет. Кстати, про C# ты только сейчас написал...
Я тут вот чего придумал. В xls-файле на VBA написать процедуру, которая будет отсылать широковещательное сообщение в сеть при наличии ячейки нужного цвета. Эту процедуру повесить на событие BeforeSave. Процедура будет выполняться в момент сохранения файла, но перед физическим сохранением, которое произойдет сразу после окончания процедуры. На компах в сети будет установлена прога (или сервис) на C#, который будет слушать сеть, и при появлении нужного сообщения выдавать оповещение. Нагрузка на сеть будет минимальная, а о появлении в файле нужной ячейки сразу станет известно всем. В простейшем случае можно отправлять сообщения с помощью "Net Send". |
Отправлено: 21:12, 26-02-2008 | #9 |
Старожил Сообщения: 369
|
Профиль | Отправить PM | Цитировать Цитата:
1 - через объектную переменную "цвет фона ячейки" и оператор сравнения "тот цвет или не тот" 2 - в VBA есть цифровые константы отвечающие за несколько основных цветов: красный vbRed 0xFF зелёный vbGreen 0xFF00 синий vbBlue 0xFF0000 жёлтый vbYellow 0xFFFF а задаются эти константы - в "операторах" BackColor, ForeColor, BorderColor - описывающих свойства ячейки. |
|
Отправлено: 00:57, 27-02-2008 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Доступ - Не открываются xls файлы | senseye | Microsoft Windows 2000/XP | 3 | 24-04-2013 00:45 | |
Офис и Текст - Общие вопросы по XLS-файлам | 1Space | Программное обеспечение Windows | 46 | 09-07-2008 13:06 | |
Теория - Конвертирование xls в jpg | Surround | Программирование и базы данных | 13 | 27-01-2008 17:50 | |
[решено] Не открываются *.xls | NordWest | Microsoft Windows 2000/XP | 4 | 02-11-2006 18:08 |
|