|
Записать ТабличныйДокумент в новый лист существующего файла Excel |
☑ |
0
ДядяМитяй
07.09.17
✎
18:02
|
Вот собственно сабж. Хорошо бы было что-нибудь аналогичное ТабличныйДокумент.Записать(). Но поскольку нету, может кто-нибудь подскажет, как это сделать средствами VB, в котором я полный лох. Или еще как. Или сохранить как другой файл, но тогда как перекинуть лист из книги в книгу? В справке по VB нашел только как внутри книги лист пинать.
|
|
1
Господин ПЖ
07.09.17
✎
18:04
|
а проблема то в чем? лист - такой же член коллекции как ТЧ из ТабличныеЧасти
|
|
2
Базис
naïve
07.09.17
✎
18:08
|
Я тут уже хвалил книгу Андрея Михайлова "1С.Предприятие 7.7/8.0. Системное программирование", но повторюсь. Там хорошие простые примеры и раскрыта объектная модель экселя, ворда и прочая.
|
|
3
Tatitutu
07.09.17
✎
18:30
|
1. Для чего это нужно ?
2. выбрал папку - сохранил туда все файлы
3. Всести строку Название файла или выбрать файл
и все что есть в папке в один файл запихать, что осталось удалить...
ДокЭксель = Новый COMОбъект("Excel.Application");
ДокЭксель.DisplayAlerts=0;
ОбщаяКнига = ДокЭксель.WorkBooks.Open(ИмяОсновногоФайла);
ЛистСДанными = ОбщаяКнига.Sheets(1);
ЛистСДанными.Select();
ЛистСДанными.Name ="MAGAZKA ()";
Сч=1;
Для каждого ПутьКФайлуXLS Из МассивПутейФайловXLS Цикл
Книга = ДокЭксель.WorkBooks.Open(ПутьКФайлуXLS.Значение);
ЛистСДанными = Книга.Sheets(1);
ЛистСДанными.Select();
ИмяЛиста=СтрЗаменить(Книга.Name,СокрЛП(ПутьДляСохранения),"");
ИмяЛиста=СтрЗаменить(ИмяЛиста,".xls","");
ЛистСДанными.Name =ИмяЛиста;
ЛистСДанными.Copy(ОбщаяКнига.Sheets(Сч));
Сч=Сч+1;
Книга.close();
КонецЦикла;
ДокЭксель.ActiveWindow.TabRatio = 0.5;
ЛистСДанными = ОбщаяКнига.Sheets(1);
ЛистСДанными.Select();
ОбщаяКнига.Save();
ОбщаяКнига.close();
ДокЭксель.Quit();
ДокЭксель = Неопределено;
Для каждого ПутьКФайлуXLS Из МассивПутейФайловXLS Цикл
УдалитьФайлы(СокрЛП(ПутьКФайлуXLS.Значение));
КонецЦикла;
//КомандаСистемы(СокрЛП(ПутьДляСохранения)+"\royalti.xls");
ДокЭксель = Новый COMОбъект("Excel.Application");
ДокЭксель.WorkBooks.Open(ИмяОсновногоФайла);
ДокЭксель.Visible = Истина;
|
|
4
Господин ПЖ
07.09.17
✎
18:33
|
>Там хорошие простые примеры и раскрыта объектная модель экселя, ворда и прочая.
эти модели хорошо раскрывает msdn
|
|
5
ДядяМитяй
08.09.17
✎
09:29
|
(3) Спасибо, это то, что нужно. Просто в справке в описании этих команд только внутри одной книги все описано - поэтому сомневался.
А нужно это для предоставления реестра в банк по строгому шаблону - три совершенно разных таблицы в одном файле с определенными именами листов.
|
|
6
ДядяМитяй
08.09.17
✎
15:38
|
Интересно, что ТабличныйДокумент.Записать(Путь, ".xls) создает файл, в котором только один лист и добавить как-то не получается. Пришлось создавать новый файл и из трех других добавлять листы.
|
|
7
ДядяМитяй
08.09.17
✎
15:41
|
* ".xls" - кавычку пропустил
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший