Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Обработка определенного листа Excel

Обработка определенного листа Excel
Я
   SkillUp
 
11.04.19 - 09:35
Здр., подскажите, для обработки, допустим 2-ого листа Экселя нужно так?

Лист = Книга.Worksheets(2);

или напутал чего?

Не пойму, почему обработка идет первой страницы всегда?
 
 
   SkillUp
 
1 - 11.04.19 - 09:41
Пардон, речь идет о листах, а не о страницах. Надо обработать 2-ой лист...
   1Сергей
 
2 - 11.04.19 - 09:43
Всё верно, это обращение ко второму листу
   SkillUp
 
3 - 11.04.19 - 09:44
(2) тю, блин... спасибо!
Буду искать причину, тогда...
   1Сергей
 
4 - 11.04.19 - 09:44
Для проверки попробуй

Книга.Worksheets(1).Name
Книга.Worksheets(2).Name
   SkillUp
 
5 - 11.04.19 - 09:45
Вот у меня:
    //очищаем таблицу и удаляем колонки 

    Таблица.Очистить();
    Таблица.Колонки.Очистить();
    ЭлементыФормы.Таблица.Колонки.Очистить();
    
    ИмяФайла = ПолеВвода1;
    
    // Создание COM-объекта

    Excel = Новый COMОбъект("Excel.Application");

    // Открытие книги

    Книга = Excel.Workbooks.Open(ПолеВвода1);
    // Позиционирование на нужном листе

    Лист = Книга.Worksheets(НомерСтраницы);
    
    //Получим количество строк и колонок. 

    //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel 

    Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1);
    Если Версия = "8" тогда ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count; 
        ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13); 
    Иначе
        ФайлСтрок = Excel.Cells(1,1).SpecialCells(11).Row; 
        ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column; 
    Конецесли;
    
    //считываем первую строку и генерируем колонки 

    Сч = 1; 
    Пока ЗначениеЗаполнено(Excel.Cells(1, Сч).Text) Цикл 
        ИмяКолонки = Excel.Cells(1, Сч).Text;
        ИмяБезПробелов = СтрЗаменить(ИмяКолонки," ","");// убираем из имени колонок пробелы

        ИмяБезПробелов = СтрЗаменить(ИмяБезПробелов,"-","");// убираем из имени колонок пробелы

    
        
        Позиция = Найти(ИмяБезПробелов,"Город");
        Если Позиция >0 Тогда
             ИмяБезПробелов = "Город";
        КонецЕсли;    
                
        Таблица.Колонки.Добавить(ИмяБезПробелов,,ИмяКолонки);
        НоваяКолонка = ЭлементыФормы.Таблица.Колонки.Добавить(ИмяБезПробелов, ИмяКолонки);
        НоваяКолонка.Данные = ИмяБезПробелов;
        Сч = Сч + 1;
    КонецЦикла;
    
    
    //После формирования колонок считываем тело файла эксель и построчно заносим данные в табличное поле:

    Для НС = 2 по ФайлСтрок Цикл// НС указываем с какой строки начинать обработку 

        Состояние("Файл "+Строка(ИмяФайла)+": Обрабатывается первый лист "+Строка(Формат(?(ФайлСтрок=0,0,((100*НС)/ФайлСтрок)),"ЧЦ=3; ЧДЦ=0"))+" %");
        ОбработкаПрерыванияПользователя();//указав данный оператор, цикл можно прервать в любой момент нажатие ctrl+break

        НоваяСтрока = Таблица.Добавить(); 
        Для НомерКолонки = 1 по Таблица.Колонки.Количество() Цикл//заполняем строку значениями 

            ТекущееЗначение = Excel.Cells(НС, НомерКолонки).Text;
            ИмяКолонки = Таблица.Колонки[НомерКолонки-1].Имя; 
            НоваяСтрока[ИмяКолонки] = ТекущееЗначение; 
        КонецЦикла;
    КонецЦикла;    
    
    // Закрытие книги

    Excel.DisplayAlerts = 0; 
    Excel.Quit(); 
    Excel.DisplayAlerts = 1;
   SkillUp
 
6 - 11.04.19 - 09:45
Ищу из-за чего?
   SkillUp
 
7 - 11.04.19 - 09:45
(4) АААА!!! ВСе, понял. СПАИБО!!!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.