来自Matlab的表到单词

时间:2013-04-26 04:21:40

标签: matlab vba ms-word

我在Matlab中的代码经过计算后会打印出结果。我正在使用writetoword.m,我的结果主要是表格。我需要帮助对齐这些表格。

FileSpec = fullfile(CurDir,[WordFileName,'.pdf']);
    [ActXWord,WordHandle]=StartWord(FileSpec);

WordCreateTable(ActXWord,NoRows,NoCols,readings,6);


function WordCreateTable(actx_word_p,nr_rows_p,nr_cols_p,data_cell_p,enter_p) 


    if(enter_p(1))
        actx_word_p.Selection.ParagraphFormat.Alignment=1;
        actx_word_p.Selection.TypeParagraph;
    end
     actx_word_p.Selection.ParagraphFormat.Alignment=1;

    actx_word_p.ActiveDocument.Tables.Add(actx_word_p.Selection.Range,nr_rows_p,nr_cols_p,2,1);

    for r=1:nr_rows_p
        for c=1:nr_cols_p
            actx_word_p.Selection.ParagraphFormat.Alignment=1;
            WordText(actx_word_p,data_cell_p{r,c},'Normal',[0,0]);

            if(r*c==nr_rows_p*nr_cols_p)

                actx_word_p.Selection.MoveDown;
            else 
                actx_word_p.Selection.MoveRight;
            end            
        end
    end

end


function WordText(actx_word_p,text_p,style_p,enters_p,color_p)
    if(enters_p(1))
        actx_word_p.Selection.TypeParagraph;
    end
    actx_word_p.Selection.Style = style_p;
    if(nargin == 5)
        actx_word_p.Selection.Font.Color=color_p;     
    end
    actx_word_p.Selection.TypeText(text_p);
    actx_word_p.Selection.Font.Color='wdColorAutomatic';
    for k=1:enters_p(2)    
        actx_word_p.Selection.TypeParagraph;
    end
    set(actx_word_p.Selection.ParagraphFormat,'Alignment',1);
end

我想在一张纸上打印所有表格,我需要表格并排。使用上面的代码,它总是从一个新的行开始。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

当我想在Word中并排放置两个表时,我通常会从一个新的“辅助”表开始,该表具有以下细节

  • 1行,2列
  • 整页宽度
  • 无国界
  • 居中文字

然后我将第一个表写入“辅助”表的左侧单元格,将第二个表格写入右侧单元格。当你使用它时,我还设法从MatLab用COM服务器做到这一点。需要一些编码,但没有什么太花哨的。如果您有任何疑问,请告诉我。