c++生成器Excel Ole在最后一张工作表之后创建新的工作表



我不想在工作表选项卡的开头而是末尾添加一个新的工作表。但我只能设法让它在前线发挥作用。

workSheet = workSheets.OleFunction("Add");

我如何更改这行代码以使其在末尾添加?

Worksheets.Add()方法具有可选的BeforeAfter参数:

Before
一个对象,用于指定添加新工作表的工作表。

After
一个对象,用于指定添加新工作表的工作表。

如果BeforeAfter都被省略,则将在活动工作表之前插入新工作表

您需要设置After param

Excel::_WorksheetPtr newSheet;
if (const auto sheetsCount = m_book->Worksheets->GetCount(); sheetsCount == 0)
newSheet = m_app->Worksheets->Add();
else
{
IDispatchPtr dispatch = m_app->Worksheets->GetItem(sheetsCount); // Number of sheet, not index
newSheet = m_app->Worksheets->Add(vtMissing, dispatch.GetInterfacePtr(), 1);
}
return newSheet;

相关内容

最新更新