如何在MATLAB中向excel工作簿添加3张以上的工作表

时间:2012-03-29 07:06:15

标签: excel matlab export-to-excel

如何在matlab中向excel工作簿添加更多工作表?

我设置了这样的工作簿(基于我在本论坛中从别人的帖子中获得的代码):

    %# create Excel COM Server
    Excel = actxserver('Excel.Application');
    Excel.Visible = true;
    %# create new XLS file
    wb = Excel.Workbooks.Add();
    wsheet=1;
    wb.Sheets.Item(wsheet).Activate();

没关系。然后在循环内部,我在这么多循环之后打开一个新的工作表:

    ...
    if loop==sheetlimit,
         wsheet=wsheet+1;
         wb.Sheets.Item(wsheet).Activate();
    end

这适用于工作表3.但是当wsheet = 4时,我收到此错误消息:

    ??? Invoke Error, Dispatch Exception: Invalid index.

    Error in ==> filename at 97
        wb.Sheets.Item(wsheet).Activate();

感谢任何帮助。感谢。

2 个答案:

答案 0 :(得分:3)

我不知道Matlab但是如果wb.Sheets.Item(wsheet).Activate();实际上添加了任何新的工作表,我会感到惊讶。很可能是在wb工作簿中选择/激活每个工作表,而您的默认Excel模板有三个工作表。因此,当它达到三个以上时,它会出错。

像这样的可能添加一个新的Excel工作表:

wb.sheets.Add();

答案 1 :(得分:1)

Aargh - 评论格式完全搞砸了 - 我会重新输入它作为新答案

wb.sheets.Add();可行。您可以查询界面的可用方法,如下所示:

methods(wb.sheets)

给出:

Methods for class Interface.000208D7_0000_0000_C000_000000000046:

Add FillAcrossSheets PrintOut addproperty events loadobj set
Copy Item PrintPreview delete get release
Delete Move Select deleteproperty invoke saveobj