Имя: Пароль:
1C
1С v8
Опять этот Excel
0 1CLama
 
11.01.12
17:41
Добрый день!
Мне необходимо из 3-х таблиц Excel сделать одну, но при этом не потерять группировки. Вот этот способ
http://www.1c-pro.ru/index.php?showtopic=24688&st=0&gopid=187902&#entry187902 интересный, но группировки теряются.
Может есть какая-то возможность получить результат с помощью Excel? Или как-то по-другому - в Excel они превратились из Табличного Документа.
1 1CLama
 
11.01.12
18:26
up
2 petrowsky
 
11.01.12
20:49
(0) т.е. ты сохраняешь 3 таб. дока в 3 файла xls, a затем из 3х файлов xls хочешь получить 1?
не проще ли сразу получить 1 таб. док с нужными тебе группировками, а затем сохранить его в 1 файл xls
3 1CLama
 
12.01.12
12:05
(2) Так у меня на 3-х листах одного файла Excel должен быть результат.

Работал на своей машине - не копируются группировки, работал на серваке - все ок. В чем может быть причина?

Вот код: для наглядности просто на одном файле

   ТабДок1.Записать (ПутьОбщий+"file1.xls", ТипФайлаТабличногоДокумента.XLS);
   ТабДок2.Записать (ПутьОбщий+"file2.xls", ТипФайлаТабличногоДокумента.XLS);
   ТабДок3.Записать (ПутьОбщий+"file3.xls", ТипФайлаТабличногоДокумента.XLS);
   
   Excel  = Новый COMОбъект ("Excel.Application");
   КнигаНовая = Excel.Workbooks.Add(); // Создали новую книгу Excel
   КнигаНовая_Лист1 = КнигаНовая.WorkSheets(1);
   
   Книга1 = Excel.Workbooks.Open(ПутьОбщий+"file1.xls");    
   Книга1_Лист1 = Книга1.WorkSheets(1);
   Книга1_Лист1.Activate();    
   Книга1_Лист1.Cells.Select();
   Excel.Selection.Copy();
   
   КнигаНовая_Лист1.Activate();
   КнигаНовая_Лист1.Cells.Select();
   КнигаНовая_Лист1.Paste();
       
   Excel.Visible = Истина;
4 Tatitutu
 
12.01.12
12:09
так ты не данные с листа копируй
Книга1_Лист1.Cells.Select();
а копируй сам лист целиком
Книга1_Лист1.Select();

и прибудет с тобой счастье
5 1CLama
 
12.01.12
12:54
Спасибо, друг!
Правильную идею посоветовал.
Реализация приблизительно такая должна быть (может кому понадобится):

   ТабДок1.Записать (ПутьОбщий+"file1.xls", ТипФайлаТабличногоДокумента.XLS);
   ТабДок2.Записать (ПутьОбщий+"file2.xls", ТипФайлаТабличногоДокумента.XLS);
   ТабДок3.Записать (ПутьОбщий+"file3.xls", ТипФайлаТабличногоДокумента.XLS);
   
   Excel  = Новый COMОбъект ("Excel.Application");
   КнигаНовая = Excel.Workbooks.Add(); // Создали новую книгу Excel
   КнигаНовая_Лист1 = КнигаНовая.WorkSheets(1);
   
   Книга1 = Excel.Workbooks.Open(ПутьОбщий+"file1.xls");    
   Книга1_Лист1 = Книга1.WorkSheets(1);
   Книга1_Лист1.Activate();    
   Книга1_Лист1.Select(); // с форума совет
   Книга1_Лист1.Copy(, КнигаНовая_Лист1);  // Вот это самый важный момент!
   
// Комментируем
   //КнигаНовая_Лист1.Activate();
   ////КнигаНовая_Лист1.Cells.Select();
   //КнигаНовая_Лист1.Select();
   //КнигаНовая_Лист1.Paste();
       
   Excel.Visible = Истина;