|
Программное копирование листа между книгами Excel. |
☑ |
0
bvb
02.12.14
✎
11:20
|
Погуглил. Тема не новая. Но просмотрев темы, не увидел, что проблема решена.
Вообще исходная задача такова :
В Макете печатной формы как Active Document хранится файл- шаблон Excel с двумя листами.
Нужно по каждой строке ТЧ сформировать новый файл и заполнить его (оба листа)
Задачу, как я вижу можно решать тремя способами :
1. Получать шаблон Excel по каждой строке ТЧ затем сохраняя его
КнигаШаблонExcel = ПолучитьМакет("МойДокумент_Excel").Получить();
Заполнение ….
КнигаШаблонExcel.SaveAs(ПолноеИмяФайла);
файлы создаются но почему то пустые
2. Скопировать лист из шаблона в книгу
ExcelApplication = Новый COMОбъект("Excel.Application");
КнигаПриемникExcel = ExcelApplication.Workbooks.Add(1);
ЛистШаблона = КнигаШаблонExcel.Sheets(1);
ЛистШаблона.Copy(КнигаПриемникExcel.Sheets(1)); // копируем лист шаблона с указанием приемника
ExcelApplication.ActiveWorkbook.SaveAs(ПолноеИмяФайла);
ExcelApplication.Quit();
Произошла исключительная ситуация (Microsoft Excel): Метод Copy из класса Worksheet завершен неверно
3. Скопировать именнованную область из шаблона в книгу
ExcelApplication = Новый COMОбъект("Excel.Application");
КнигаПриемникExcel = ExcelApplication.Workbooks.Add(1);
ЛистШаблона = КнигаШаблонExcel.Sheets(1);
ЛистШаблона.Range("Справка_А").Copy(КнигаПриемникExcel.Sheets(1).Range("A1:D38")); // копируем именнованную область из шаблона
ExcelApplication.ActiveWorkbook.SaveAs(ПолноеИмяФайла);
ExcelApplication.Quit();
Произошла исключительная ситуация (Microsoft Excel): Метод Copy из класса Range завершен неверно
Ни один способ не работает. Как быть ? Очень надо.
|
|
1
bvb
02.12.14
✎
15:09
|
апну пожалуй
|
|
2
palpetrovich
02.12.14
✎
15:12
|
как-то это режет глаз:
ЛистШаблона = КнигаШаблонExcel.Sheets(1);
ЛистШаблона.Copy(КнигаПриемникExcel.Sheets(1));
|
|
3
BAPBAP
02.12.14
✎
15:27
|
Вроде, как-то так должно быть
КнигаШаблонExcel.Sheets(1).Copy();
КнигаПриемникExcel.Sheets(1).Paste();
|
|
4
palpetrovich
02.12.14
✎
15:29
|
+(2) так работает, правда не совсем то что нужно автору :)
ExcelApplication = Новый COMОбъект("Excel.Application");
Док = ExcelApplication.Workbooks.Open("D:\1с82\1.xls");
ЛистШаблона = Док.Sheets(1);
КнигаПриемникExcel = ExcelApplication.Workbooks.Add(1);
ЛистШаблона.Copy(КнигаПриемникExcel.Sheets(1));
ExcelApplication.ActiveWorkbook.SaveAs("D:\1с82\2.xls");
ExcelApplication.Quit();
|
|