![]() |
![]() |
![]() |
|
из эксель в 1с 8,2. несколько листов | ☑ | ||
---|---|---|---|---|
0
Liroi
10.09.12
✎
12:33
|
Всем привет. задачка импортировать в 1с 8,2 файл эксель. с одного листа я реализовал, а как еще с другого листа импортировать, короч. со всех листов в одну кучу. количество листов в документе постоянно
|
|||
1
Rie
10.09.12
✎
12:34
|
(0) Циклом не пробовал?
|
|||
2
DrShad
10.09.12
✎
12:42
|
количество листов не важно
|
|||
3
Liroi
10.09.12
✎
12:45
|
количество не важно, а тогда какой последний будет. выражение. если циклом
|
|||
4
Rie
10.09.12
✎
12:56
|
(3) Книга.Worksheets.Count
|
|||
5
Liroi
10.09.12
✎
13:24
|
Книга = ExcelФайл.WorkSheets.Count;
ExcelЛист = Книга.WorkSheets(1); Для ExcelЛист = 1 по Книга Цикл .... так? |
|||
6
Rie
10.09.12
✎
13:35
|
(5)
КолвоЛистов = ExcelФайл.Worksheets.Count; Для НомерЛиста = 1 По КолвоЛистов Цикл ExcelЛист = ExcelФайл.Worksheets(НомерЛиста); // и тут что хочешь с ним, то и делаешь КонецЦикла; |
|||
7
Liroi
10.09.12
✎
13:56
|
{Форма.Форма.Форма(56)}: Метод объекта не обнаружен (WorkSheets)
|
|||
8
Liroi
10.09.12
✎
13:59
|
Попытка
// Загрузка Microsoft Excel Состояние("Загрузка Microsoft Excel..."); ExcelПриложение = Новый COMОбъект("Excel.Application"); Исключение Сообщить("Ошибка при загрузке Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Возврат; КонецПопытки; Попытка // Открытие файла Microsoft Excel Состояние("Открытие файла Microsoft Excel..."); ExcelФайл = ExcelПриложение.WorkBooks.Open(ИмяФайла); Исключение Сообщить("Ошибка открытия файла Microsoft Excel." + ИмяФайла + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); КонецПопытки; Попытка // Обработка файла Microsoft Excel Состояние("Обработка файла Microsoft Excel..."); // Читаем данные листа книги КолвоЛистов = ExcelФайл.Worksheets.Count; Для НомерЛиста = 1 По КолвоЛистов Цикл ExcelЛист = ExcelФайл.Worksheets(НомерЛиста); // Определить количество строк и колонок выбранного листа книги Excel xlCellTypeLastCell = 11; ExcelПоследняяСтрока = ExcelЛист.Cells.SpecialCells(xlCellTypeLastCell).Row; ExcelПоследняяКолонка = ExcelЛист.Cells.SpecialCells(xlCellTypeLastCell).Column; Исключение Сообщить("Ошибка открытия листа №1 Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); // Закрыть COM соединение для экономии памяти ExcelПриложение.Quit(); КонецПопытки; // Создание описателя типов для таблицы значений КЧ = Новый КвалификаторыЧисла(15,2); КС = Новый КвалификаторыСтроки(50); Массив = Новый Массив; Массив.Добавить(Тип("Строка")); ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС); Массив.Очистить(); Массив.Добавить(Тип("Число")); ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, , ,КЧ); // Очистить предыдущие значения ТаблицаДокумента.Очистить(); ТаблицаДокумента.Колонки.Очистить(); // Создать колонки табличного документа ТаблицаДокумента.Колонки.Добавить("Номер",ОписаниеТиповС,"Номер",5); ТаблицаДокумента.Колонки.Добавить("Артикул",ОписаниеТиповС,"Артикул",11); ТаблицаДокумента.Колонки.Добавить("Описание",ОписаниеТиповС,"Описание",25); ТаблицаДокумента.Колонки.Добавить("Цена",ОписаниеТиповЧ,"Цена",6); ТаблицаДокумента.Колонки.Добавить("Тип",ОписаниеТиповС,"Тип",4); // Последовательное чтение строк с выбранного листа Для Строка = 1 По ExcelПоследняяСтрока Цикл // Обработка нажатия Ctrl + Break ОбработкаПрерыванияПользователя(); // Добавить данные в табличную часть экранной формы Стр=ТаблицаДокумента.Добавить(); Стр.Номер = Строка; Попытка Стр.Артикул = ExcelЛист.Cells(Строка, 1).Value; Стр.Описание = ExcelЛист.Cells(Строка, 2).Value; Стр.Цена = ExcelЛист.Cells(Строка, 3).Value; Стр.Тип = ExcelЛист.Cells(Строка, 4).Value; Исключение // Не редко происходит ошибка конвертации отдельной ячейки документа Сообщить("Ошибка чтения строки файла Microsoft Excel." + Строка + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); КонецПопытки; // Отобразить информацию о ходе выполнения обработки Состояние("Обработка файла Microsoft Excel : " + "строка " + Строка + " из " + ExcelПоследняяСтрока); КонецЦикла; // Закрыть COM соединение для экономии памяти ExcelПриложение.Quit(); |
|||
9
Liroi
10.09.12
✎
14:11
|
Rie, пардон. с WorkSheets разобрался.
только теперь почему-то все поля пустые |
|||
10
Rie
10.09.12
✎
14:28
|
(9) Теперь разберись с тем, что ты с каждым новым листом чистишь свою ТаблицаДокумента.
|
|||
11
Liroi
10.09.12
✎
14:39
|
дело не в очистке. последний лист оказался пустым, я его удалил, осталось 2 листа и в 1ске он мне выводит не все листы, а только последний оказыввается, вот почему до этого пустая таблица была. лист последний пустой был
|
|||
12
Rie
10.09.12
✎
14:51
|
(11) Именно из-за очистки у тебя и терялось содержимое предыдущих листов.
|
|||
13
Liroi
10.09.12
✎
14:55
|
там на очистку 2 строчки. я их закомментировал, не помогло
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |