Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Получить гиперссылку из ячейки Exel

v7: Получить гиперссылку из ячейки Exel
Я
   MiracMC
 
13.10.16 - 15:47
Всем доброго времени суток.

Для чтения EXEL фалов использую вот такой код:

Перем тзДанных;
Процедура ПолучитьДанные()              
    ФС.УстТекКаталог(сКатал);                        
    Если ФС.СуществуетФайл(СокрЛП(сФайл)) = 1 Тогда
        // ************************************************* работаем с EXCEL через ADO *********************************************************

        ИмяТаблицы = "Лист1$";  
        флХедер = 0;// в первой строке будут не данные для заголовков (если флХедер=1, то имена полей будут взяты из первой строки таблицы)

        db=CreateObject("ADODB.Connection");
        rs=CreateObject("ADODB.Recordset");  
        db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+СокрЛП(сКатал) + СокрЛП(сФайл) +";Extended Properties=""Excel 8.0;"+?(флХедер=1,"","HDR=NO;")+"IMEX=1;""";
        //db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+НазваниеФайла+";Extended Properties=""Excel 8.0;HDR=NO; IMEX=1;""";

        //HDR=NO - Имена полей имеют вид "F1, F2, F3..." то-есть буква "F" и порядковый номер колонки. Если данный параметр опустить

        // имена полей беруться из первой строки - для таблиц Экселя норма.  

        Пока 1 = 1 Цикл    
            Попытка
                db.Open();
                Прервать;
            Исключение
                
            конецПопытки;
        КонецЦикла;
        rs.ActiveConnection = db;
        rs.CursorType = 3;
        rs.LockType = 2;
        rs.Source = "Select * from ["+ИмяТаблицы+"] where not f3 like ''";
        Попытка
            rs.Open();
        Исключение
            Сообщить("Ошибка при открытии файла " + СокрЛП(сФайл));
        КонецПопытки;
        // Инициализируем колонки

        тзДанных = СоздатьОбъект("ТаблицаЗначений");
        тзДанных.УдалитьСтроки();
        Для iCount = 1 По rs.Fields.Count Цикл 
            ИмяКолонки = rs.Fields.Item(iCount-1).Name;
            тзДанных.НоваяКолонка(ИмяКолонки,,,,ИмяКолонки,15,,);
        КонецЦикла;
        // Перебор данных

        rs.MoveFirst();                 
        Пока rs.EOF() = 0 Цикл
            тзДанных.НоваяСтрока();
            Для iCount = 1 По rs.Fields.Count Цикл                       
                Если ПустоеЗначение(rs.Fields(iCount-1).Value) = 0 Тогда
                     тзДанных.УстановитьЗначение(тзДанных.КоличествоСтрок(),iCount,rs.Fields(iCount-1).Value);
                КонецЕсли;
            КонецЦикла;
          rs.MoveNext();  
        КонецЦикла;
        rs.Close();
        db.Close();
        db = "";
        rs = "";
        // данне получили, АDO закрыли **********************************************************************************************************

    Иначе
        Сообщить ("Файл " + СокрЛП(сФайл) + " не существует!");
    КонецЕслИ; 
КонецПроцедуры

в строке
тзДанных.УстановитьЗначение(тзДанных.КоличествоСтрок(),iCount,rs.Fields(iCount-1).Value);
в ячейку тзДанных записывается значение из ячейки в файле Exel.

Вопрос - как проверить наличие гиперссылки в ячейке и если она есть получить ее?

Сразу скажу что через Excel.Application делать не вариант. Уж больно медленный этот способ.

Заранее благодарен.
 
 
   Это_mike
 
1 - 13.10.16 - 15:48
а Йоксель?
   MiracMC
 
2 - 13.10.16 - 15:55
(1) а есть пример?
   MiracMC
 
3 - 17.10.16 - 11:23
АП на всякий случа

Список тем форума
Рекламное место пустует  Рекламное место пустует
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует