Имя: Пароль:
1C
 
Выгрузить из 1С в Excel-документ с помощью Ёкселя
0 warit
 
31.03.08
13:20
Здравствуйте есть код для выгрузки в Excel. Необходимо его изменить по Ёксель. Спасибо. Код:
   Попытка
       Ексель=СоздатьОбъект("Excel.Application");
   Исключение
       Сообщить(ОписаниеОшибки(),"!!!");
       Сообщить("Возможно, MS Excel не установлен на этом компьютере.");
       Возврат;
   КонецПопытки;
   //Открытие рабочей книги
   Книга=Ексель.Workbooks.Open(Путь+Файл);
   //Получение окна
   //Получение рабочего листа
   Лист=Книга.Worksheets(Книга.Worksheets.Count);
   Книга.Worksheets(Книга.Worksheets.Count).Copy(Книга.Worksheets(2));
   Лист=Книга.Worksheets(2);
   Лист.Name=ДатаЧисло(Дата2);
   Ексель.Visible=0;
   ВсегоСтрок = Лист.UsedRange.Rows.Count;
   Буфер=Ексель.Range("B3").value;
   Ексель.Range("B3").value=Буфер+Дата2;
   К=9;
   Пока К<(ВсегоСтрок-18) цикл
       Ексель.Range("A10").Select();
       Ексель.Selection.EntireRow.Delete();
       К=К+1;
   КонецЦикла;
   Ексель.range(Лист.cells(8,2),Лист.cells(9,6)).select();
   Ексель.selection.ClearContents();
   Ексель.range(Лист.cells(8,8),Лист.cells(9,8)).select();
   Ексель.selection.ClearContents();
   Ексель.range(Лист.cells(8,13),Лист.cells(9,14)).select();
   Ексель.selection.ClearContents();
           ....................
       Ексель.Range("A"+строчка).Select();
       Ексель.Selection.EntireRow.Insert();
                           Ексель.range(Лист.cells(строчка+1,1),Лист.cells(строчка+1,14)).select();
       Ексель.selection.copy();
       Ексель.range(Лист.cells(строчка,1),Лист.cells(строчка,14)).select();
       Ексель.ActiveSheet.paste();    


           Лист.Cells(строчка, 2).value=НПП;
       Лист.Cells(строчка, 3).value=Док.ДатаДок;
       Лист.Cells(строчка, 4).value=Строка(Док.Контрагент);
       Лист.Cells(строчка, 5).value=Строка(Док.НомерДок);
       Лист.Cells(строчка, 6).value=Док.Итог("СуммаСНДС");
       Лист.Cells(строчка, 8).value=Док.ДатаДок+1;
       Лист.Cells(строчка, 10).value=Док.Итог("СуммаСНДС");
       
       //Установка числового формата
       Попытка
           Лист.Cells(строчка, 6).NumberFormat="# ##0,00";
           Лист.Cells(строчка, 9).NumberFormat="# ##0,00";
       Исключение
           Попытка
               Лист.Cells(строчка, 6).NumberFormat="# ##0.00";
               Лист.Cells(строчка, 9).NumberFormat="# ##0.00";
           Исключение
           КонецПопытки;
       КонецПопытки;
       
       
       Строчка=Строчка+1;
           ..........................
Лист.range(Лист.cells(8,2),Лист.cells(НПП+8,8)).Font.Size=8;//размер шрифта
   Ексель.Range("A8").Select();
   Ексель.Selection.EntireRow.Delete();
   Ексель.range(Лист.cells(Строчка-1,1),Лист.cells(Строчка-1,14)).select();
   Ексель.Selection.EntireRow.Delete();
   Лист=Книга.Worksheets(1);
   ИмяЛиста=ДатаЧисло(Дата2);
   ИтогСтрока=10+(ИмяЛиста-1)*2;
   Строчка=Строчка-1;
   Лист.Cells(ИтогСтрока,4).FormulaR1C1="='"+ИмяЛиста+"'!R["+(Строчка-ИтогСтрока)+"]C["+(6-4)+"]";
   Лист.Cells(ИтогСтрока,5).FormulaR1C1="='"+ИмяЛиста+"'!R["+(Строчка+6-ИтогСтрока)+"]C[0]";
   Лист.Cells(ИтогСтрока+1,5).FormulaR1C1="='"+ИмяЛиста+"'!R["+((Строчка+6)-(ИтогСтрока+1))+"]C["+(6-5)+"]";
   Для К=6 по 11 цикл
       Лист.Cells(ИтогСтрока,К).FormulaR1C1="='"+ИмяЛиста+"'!R["+((Строчка+10)-(ИтогСтрока))+"]C[0]";
       Лист.Cells(ИтогСтрока+1,К).FormulaR1C1="='"+ИмяЛиста+"'!R["+((Строчка+11)-(ИтогСтрока+1))+"]C[0]";
   КонецЦикла;
   Для К=12 по 18 цикл
       Лист.Cells(ИтогСтрока,К).FormulaR1C1="='"+ИмяЛиста+"'!R["+((Строчка+15)-(ИтогСтрока))+"]C[-6]";
       Лист.Cells(ИтогСтрока+1,К).FormulaR1C1="='"+ИмяЛиста+"'!R["+((Строчка+16)-(ИтогСтрока+1))+"]C[-6]";
   КонецЦикла;
   Лист.Cells(ИтогСтрока,19).FormulaR1C1="='"+ИмяЛиста+"'!R["+(3-ИтогСтрока)+"]C[-9]";
   Ексель.Visible=1;
   Ексель.range("A1").Select();
1 ТелепатБот
 
гуру
31.03.08
13:20
2 warit
 
31.03.08
13:29
Кто-то делал что-то подобное?
3 Cap_1977
 
31.03.08
13:30
(2) Работает, зачем менять ?!
4 warit
 
31.03.08
13:32
Менять под Ёксель т.к. не на всех компах есть Excel и ставить нельзя, денег стоит.
5 Соратник
 
31.03.08
13:56
(4) а разбираться с Ёкселем лениво?
6 dk
 
31.03.08
14:02
(4) Перепиши на OpenOffice :)
7 warit
 
31.03.08
14:49
Лениво разбираться если это уже кто-то делал и лениво переделывать под OpenOffice.
8 1Cко
 
31.03.08
14:52
че за Ёксель моксель такой?
9 wsxedc83
 
31.03.08
14:54
Что такое Ёксель?
10 Sadovnikov
 
31.03.08
15:01
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.