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

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 человек.
Рекламное место пустует