|
v8: Не грузится второй екселевский фаил | ☑ | ||
---|---|---|---|---|
0
Grigory123456789
31.05.13
✎
17:12
|
В общем есть на форме 2 табличных поля, есть функция
Функция ИзExcelВТаблицу1(ПутьДоExcel,НомерЛиста,ПерСтрокаЗаголовок) ТЗ = Новый ТаблицаЗначений(); Попытка Эксель = Новый COMОбъект("Excel.Application"); // для v7 код будет: Эксель = СоздатьОбъект("Excel.Application"); Исключение Сообщить(ОписаниеОшибки()); Возврат ТЗ; КонецПопытки; Книга = Эксель.WorkBooks.Open(ПутьДоExcel); //Перед тем, как начать считывание данных, укажем лист книги, с которого будем считывать данные: Лист = Книга.WorkSheets(НомерЛиста); //Нумерация листов книги начинается с 1. Общее количество листов можно получить, используя следующую команду: КоличествоЛистов = Книга.Sheets.Count; //Лист можно выбрать по имени листа в книге: //Лист = Книга.WorkSheets(ИмяЛиста); //Имя листа в книге можно получить по номеру: ИмяЛиста = Книга.Sheets(НомерЛиста).Name; //Итак, мы открыли книгу и выбрали лист, теперь посмотрим, сколько строк и колонок на выбранном листе: ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column; ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row; //Получим значения ячейки листа в строке НомерСтроки и в колонке НомерКолонки: //Значение = Лист.Cells(НомерСтроки, НомерКолонки).Value; //Ниже приведен отрывок кода, запустив который мы прочитаем все данные с первой страницы: //Эксель = СоздатьОбъект("Excel.Application"); Книга = Эксель.WorkBooks.Open(ПутьДоExcel); Лист = Книга.WorkSheets(1); ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column; ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row; Страница = Лист;//Док.Sheets(НомерСтраницы); МакСтрок = ВсегоСтрок;//Страница.UsedRange.Rows.Count; // макс. колич. строк МакСтолб = ВсегоКолонок;//Страница.UsedRange.Columns.Count; // макс. колич. столбцов Для Столбец = 1 по МакСтолб цикл ИмяСтолбца = "Столбец_" + Столбец; Если ПерСтрокаЗаголовок тогда ИмяСтолбца = Страница.Cells(1,Столбец).Value; ИмяСтолбца = СокрЛП(ИмяСтолбца); ИмяСтолбца = СтрЗаменить(ИмяСтолбца," ","_"); КонецЕсли; ТЗ.Колонки.Добавить(ИмяСтолбца, Новый ОписаниеТипов("Строка")); КонецЦикла; НачальнаяСтрока = 1; Если ПерСтрокаЗаголовок тогда НачальнаяСтрока = 2; КонецЕсли; Для НомСтрока = НачальнаяСтрока по МакСтрок цикл СтрТЗ = ТЗ.Добавить(); Для НомСтолбец = 1 по МакСтолб цикл Данные = Страница.Cells(НомСтрока,НомСтолбец).Value; СтрТЗ[НомСтолбец-1] = Данные; Сообщить(данные); КонецЦикла; // ФормаИндикатора.ЭлементыФормы.Индикатор.Значение = НомСтрока/МакСтрок * 100; КонецЦикла; //Если ЗакрытьФормуИндиктаора тогда // ФормаИндикатора.Закрыть(); //КонецЕсли; Док=Неопределено; Страница=Неопределено; Эксель.Application.Quit(); Возврат ТЗ; КонецФункции которая нормально все отрабатывает, но вот только во вторую ТЗ не грузит результат. Загрузку делаю следующим образом ТаблицаДанные1=ИзExcelВТаблицу(ИмяФайлаНоменклатуры,1,истина); ТаблицаДанные2=ИзExcelВТаблицу1(ИмяФайлаНоменклатуры1,1,истина); в ТаблицаДанные1 данные приходят а вот во вторую нет, передача параметров в функцию происходит правильно, в чем затык не пойму. |
|||
1
Wobland
31.05.13
✎
17:14
|
а я догадываюсь
|
|||
2
Grobik
31.05.13
✎
17:14
|
Может наоборот в первую не грузит. Или Функция ИзExcelВТаблицу гдето припрятана.
|
|||
3
ssh2012
31.05.13
✎
17:14
|
(0) > екселевский фаил
[фаил] |
|||
4
Grigory123456789
31.05.13
✎
17:15
|
проверил на 5 раз, подставляю разные екселевские файлы, в первую приходит первыфй ексель
|
|||
5
Grigory123456789
31.05.13
✎
17:18
|
(2) нет все проверено и функцию скопировал в ветку прям из обработки
|
|||
6
Wobland
31.05.13
✎
17:18
|
(5) а вторую куда дел?
|
|||
7
Grigory123456789
31.05.13
✎
17:20
|
так же на форме разместил
|
|||
8
Grigory123456789
31.05.13
✎
17:20
|
ТаблицаДанные1
ТаблицаДанные2 это имена тз |
|||
9
Grigory123456789
31.05.13
✎
17:21
|
могу выложить куданить обработку, мож у меня глюки
|
|||
10
Ковычки
31.05.13
✎
17:25
|
книгу закрой
|
|||
11
Grigory123456789
31.05.13
✎
17:27
|
понял, но не понял
|
|||
12
Grigory123456789
31.05.13
✎
17:31
|
походу нашел в чем фишка, не созданы колонки в тз2
|
|||
13
Grobik
31.05.13
✎
17:52
|
(5) Какую функцию ИзExcelВТаблицу или ИзExcelВТаблицу1?
|
|||
14
Grigory123456789
31.05.13
✎
18:20
|
обе их использовал, ну думал мож глюк какой поэтому просто сделал ИзExcelВТаблицу1
|
|||
15
Ковычки
31.05.13
✎
18:22
|
автор к сведению прими SpecialCells(11) не дает последней заполненной ячейки
|
|||
16
Grigory123456789
31.05.13
✎
18:28
|
нашел
ТаблицаДанные1=ИзExcelВТаблицу(ИмяФайлаНоменклатуры,1,истина); ТаблицаДанные2=ИзExcelВТаблицу1(ИмяФайлаНоменклатуры1,1,истина); ЭлементыФормы.ТаблицаДанные1.СоздатьКолонки(); ЭлементыФормы.ТаблицаДанные2.СоздатьКолонки(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |