Вот тот же размножитель на X++:
X++:
static void Create31days(Args _args)
{
COM xlApp, wbks, wbk, wkss, currSheet, names;
int iDay;
COMVariant dummy = new COMVariant();
xlApp = new COM('Excel.Application');
xlApp.Visible(true);
wbks = xlApp.Workbooks();
wbk = wbks.Add();
wkss = wbk.Worksheets();
currSheet = wkss.Item(1);
currSheet.Select();
currSheet.Name('DayTemplate');
names = wbk.Names();
names.Add( 'DayTemplate!MyRangeA1', '=DayTemplate!$A$1' ); // также для примера создадим локальный именованный диапазон
dummy.noValue();
for (iDay=1; iDay<= 31; iDay++)
{
currSheet.Copy( dummy, currSheet ); // вот создание копии текущего листа после текущего листа
currSheet = xlApp.ActiveSheet();
currSheet.Name(strfmt('Day%1',iDay));
}
}
В классе ComExcelDocument_RU есть метод insertSheet. Он включает и копирование тоже.