|
Как три ТабДокумент выгрузить в ексель на три листа ? | ☑ | ||
---|---|---|---|---|
0
lamme
18.04.17
✎
09:38
|
Вопрос в теме ..
Кто ниб сталкивался? (вариант - сохранить отдельно в ексель и потом копировать-вставить в один - не предлагать. Один из табдокументов - огромный и 1С умирает со словами - не хватает памяти. Именно - при открытии файла и его копировании в буфер) |
|||
1
1dvd
18.04.17
✎
09:39
|
через ексель.аппликейшн
|
|||
2
lodger
18.04.17
✎
09:41
|
Excel = Новый COMОбъект("Excel.Application");
а дальше курить маны экселя. там функций и методов пара-тройка десятков. открыть лист, заполнить построчно, и два других так же. ничего из оперативки не крякнется просто так, если отдать команду на сохранение. |
|||
3
lamme
18.04.17
✎
09:43
|
афигеть .. сначала заполняем табдок
потом заполняем ексель на основе табдок ? |
|||
4
lamme
18.04.17
✎
09:45
|
пытался сделать так
Попытка Эксель = Новый COMОбъект("Excel.Application"); Эксель2 = Новый COMОбъект("Excel.Application"); Исключение Предупреждение("ОШИБКА создания приложения Excel, возможно программа не установлена!"); КонецПопытки; ПутьКФайлу ="C:\Users\Home\Desktop\тмп\док1.xls"; Книга = Эксель.WorkBooks.Open(ПутьКФайлу); ПутьКФайлу2 ="C:\Users\Home\Desktop\тмп\док2.xls"; Книга2 = Эксель2.WorkBooks.Open(ПутьКФайлу2); Лист2 = Книга2.WorkSheets(1); // Выбор первого листа. Книга2.Application.Sheets(1).Cells.Select(); Эксель2.Selection.Copy(); Лист = Книга.WorkSheets.Add(); Лист.Name = "лист ++"; Эксель.DisplayAlerts = 0; // Попытка Лист.Paste(); Книга.SaveAs("C:\Users\Home\Desktop\тмп\док123.xls"); Эксель.Application.Quit(); так дома работает но дома были файлы с листами руками сделанные. на работе - нет. табдок сохраняется в ексель. листа нет. и все .. не работает. или не работает по иной причине .. яхз |
|||
5
Остап Сулейманович
18.04.17
✎
09:45
|
(3) Разрешаю "Табдок" не заполнять. Заполнять напрямую книгу Ексель.
|
|||
6
lodger
18.04.17
✎
09:47
|
(5) +1. зачем вам табдок?
|
|||
7
lamme
18.04.17
✎
09:48
|
а есть пример заполнения ексель напрямую ?
|
|||
8
Остап Сулейманович
18.04.17
✎
09:48
|
(4) Вместо
Книга = Эксель.WorkBooks.Open(ПутьКФайлу); писать Книга = Эксель.WorkBooks.Add(ПутьКФайлу); Затем Для поз = 1 По 10 Цикл Лист = Книга.WorkSheets.Add(); //в справке посмотреть параметры КонецЦикла; |
|||
9
lamme
18.04.17
✎
09:49
|
табдок - это типа с него началось. потом аппетиты выросли. потом еще придумали ...
табдок остался и при этом хотят в три листа в одном документе |
|||
10
lodger
18.04.17
✎
09:51
|
(9) ну поставь параметр ВыводитьТабДокИлиЭксель. и в зависимости от него работай с макетами и табдоками или с экселем.
|
|||
11
Йохохо
18.04.17
✎
09:52
|
а если просто скопировать лист из файла в текущий?
|
|||
12
lamme
18.04.17
✎
09:53
|
(11)
в (4) код не хочет он работать .. |
|||
13
Остап Сулейманович
18.04.17
✎
09:53
|
(11) Стесняюсь спросить - это о программном заполнении? Или руцями?
|
|||
14
shadow_sw
18.04.17
✎
09:54
|
держи, 500 руб на счет мисты |
|||
15
Остап Сулейманович
18.04.17
✎
09:56
|
(12) В (4) код заточен под :
1. Файл эксель уже существует. 2. Один лист уже есть. 3. Вот это вот : Лист = Книга.WorkSheets.Add(); Лист.Name = "лист ++"; - в топку. Каждый лист должен иметь уникальное имя. |
|||
16
lamme
18.04.17
✎
10:04
|
(14)
это раюботает - если в исходной книге есть листы а если их нет - то не работает |
|||
17
lodger
18.04.17
✎
10:07
|
(16) ну ясен красен. код под это и заточен. переписывайте заново и будет все работать под чистый документ.
|
|||
18
rabbidX
18.04.17
✎
14:21
|
Если ПерваяСтраница Тогда
Лист = Книга.ActiveSheet; ПерваяСтраница = Ложь; Иначе Лист= Книга.Sheets.Add(); КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |