【问题标题】:Creating an Excel Table with MATLAB使用 MATLAB 创建 Excel 表
【发布时间】:2016-12-19 23:04:20
【问题描述】:

由于如果数据范围大于现有 Excel 表格范围,将不同大小的数据范围写入工作表似乎会删除 Excel 表格,因此我想在每次运行代码时在 Excel 中创建一个表格。我目前在创建表格时遇到了一些困难。我现在可以尝试创建 ListObject 的代码:

eSheets = e.ActiveWorkbook.Sheets;
eSheet = eSheets.get('Item', j);
eSheet.Activate;    
eSheet.Range(horzcat('A1:R',mat2str(size(obj,1)+1))).Select;
eSheet.Listobjects.Add;
eSheet.Listobjects.Item(1).TableStyle = 'TableStyleMedium2';
eSheet.ListObjects.Item(1).Name = tablename;

任何评论或建议将不胜感激

【问题讨论】:

    标签: excel matlab com activex listobject


    【解决方案1】:

    我不知道在 matlab 中使用 eSheet,但使用函数

    xlswrite(filename,A,sheet,xlRange) 
    

    您还可以将矩阵中的数据写入 excel 表 http://de.mathworks.com/help/matlab/ref/xlswrite.html 并使用

    [A,B] = xlsfinfo('foofoo.xlsx');
    sheetValid = any(strcmp(B, 'foo2'));
    

    您还可以检查表格是否已经存在,这样您就不会覆盖旧表格并创建新表格,如https://de.mathworks.com/matlabcentral/answers/25848-how-to-check-existence-of-worksheet-in-excel-file中所示

    我不确定这是否是您正在寻找的想法

    【讨论】:

    • eSheet 是对 excel 工作表对象的引用,使用 excel activex 服务器。以上是引用excel表格的名称,而不是excel中的表格名称。我将表格用作 Excel 中计算和绘图的动态范围。
    【解决方案2】:

    好的,因为帖子被否决了(不知道为什么......)我在一些 VBA 论坛和 MATLAB Newsgroup 的帮助下找到了自己的答案。以下是其他有问题的人的最终代码:

        e = actxserver('Excel.Application');
        ewb = e.Workbooks.Open('Path/to/file');
        eSheets = e.ActiveWorkbook.Sheets;
        eSheet = eSheets.get('Item', j);
        eSheet.Activate;
        range = horzcat('A1:R',mat2str(size(obj,1)+1));
        range_todelete = horzcat('A1:R',mat2str(size(obj,1)+300));
        Range1 = eSheet.get('Range',range_todelete);
        Range1.Value=[];
        eSheet.Range(range).Select;        
        name = 'Table_Name';        
        try eSheet.ListObjects(name).Item(1).Delete
        catch
        end
        eSheet.Listobjects.Add;
        eSheet.ListObjects.Item(1).Name = name;
        eSheet.ListObjects.Item(1).TableStyle = 'TableStyleMedium2';
        Range = eSheet.get('Range',range);
        Range.Value = cellarray;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 2013-12-15
      • 2011-03-02
      相关资源
      最近更新 更多