|
07.06.2010, 13:15 | #1 |
NavAx
|
Excel: создание закладок из разных шаблонов в одном документе
Добрый день.
Собственно вопрос в теме. В VB в функции Function Add( _ <InAttribute()> Optional ByVal Before As Object, _ <InAttribute()> Optional ByVal After As Object, _ <InAttribute()> Optional ByVal Count As Object, _ <InAttribute()> Optional ByVal Type As Object _ ) As Object последним параметром если указать путь к шаблону - все ок, в Ax не получается. прошу помочь. спасибо. |
|
07.06.2010, 13:29 | #2 |
Участник
|
что такое закладка? имеется ввиду лист? если так то, если с функцией не получится, можно, например, открывать несколько шаблонов и копировать их содержимое в новые листы
|
|
07.06.2010, 14:31 | #3 |
NavAx
|
Да, лист. Как открывать и копировать в новые листы?
|
|
07.06.2010, 14:50 | #4 |
Участник
|
открывать с помощью ComExcelDocument_RU::newFromFile()
создать новый лист ComExcelDocument_RU.insertSheet() с технологией копирования областей можно ознакомиться здесь ComExcelDocument_RU.copyAndInsertRange() |
|
08.06.2010, 10:58 | #5 |
Участник
|
А как именно указывается путь к шаблону? Должно быть:
1. Полный путь доступа, начиная от имени диска 2. Параметр обязательно должен быть "обернут" в ComVariant. Ну, что-то вроде ComVariant::CreateFromStr("C:\MyFolder\MyTemplate.xlt") |
|
|
За это сообщение автора поблагодарили: Roman777 (2). |
09.06.2010, 08:04 | #6 |
NavAx
|
Спасибо, попробую сделать так.
|
|
09.06.2010, 10:10 | #7 |
NavAx
|
ComVariant::CreateFromStr("C:\MyFolder\MyTemplate.xlt")
Не работает. |
|
09.06.2010, 11:40 | #8 |
Moderator
|
Суть проблемы в том, что путь к шаблону в качестве 4-го параметра метода Add работает в семействе Sheets и почему-то не работает в семействе Worksheets (http://www.excelforum.com/excel-prog...-template.html).
Если вы пользуетесь классом ComExcelDocument_RU, то там для получения доступа к листу используется семейство Worksheets (comWorkSheets = m_comDocument.worksheets()), что, похоже, и порождает проблему. Следующий джоб иллюстрирует эту особенность двух семейств: X++: static void job_TestSheetsAdd(Args _args) { COM wbk = SysExcelApplication::construct().workbooks().add().comObject(); // COM sheets = wbk.Worksheets(); // это не работает COM sheets = wbk.Sheets(); // а это работает ; COM::createFromObject(wbk.Application()).Visible(true); // отобразим Excel sheets.Add(COMArgument::NoValue,COMArgument::NoValue,COMArgument::NoValue, @'C:\EmplMonthIncome.xlt'); } |
|
|
За это сообщение автора поблагодарили: Roman777 (2). |
Теги |
excel |
|
|