|
Обработка определенного листа Excel | ☑ | ||
---|---|---|---|---|
0
SkillUp
11.04.19
✎
09:35
|
Здр., подскажите, для обработки, допустим 2-ого листа Экселя нужно так?
Лист = Книга.Worksheets(2); или напутал чего? Не пойму, почему обработка идет первой страницы всегда? |
|||
1
SkillUp
11.04.19
✎
09:41
|
Пардон, речь идет о листах, а не о страницах. Надо обработать 2-ой лист...
|
|||
2
1Сергей
11.04.19
✎
09:43
|
Всё верно, это обращение ко второму листу
|
|||
3
SkillUp
11.04.19
✎
09:44
|
(2) тю, блин... спасибо!
Буду искать причину, тогда... |
|||
4
1Сергей
11.04.19
✎
09:44
|
Для проверки попробуй
Книга.Worksheets(1).Name Книга.Worksheets(2).Name |
|||
5
SkillUp
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; |
|||
6
SkillUp
11.04.19
✎
09:45
|
Ищу из-за чего?
|
|||
7
SkillUp
11.04.19
✎
09:45
|
(4) АААА!!! ВСе, понял. СПАИБО!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |