将字符串的单元格数组粘贴到剪贴板中

Leo*_*Leo 1 matlab

如果我有一个单元格字符串数组,将其复制到剪贴板的最佳方法是什么,以便将其粘贴到Excel电子表格中(每个字符串都进入一个单独的单元格)?我知道我可以像这样粘贴一个元素:clipboard('copy', x{1})但是,如何快速粘贴的全部内容x?

sup*_*pyo 5

回答

诀窍是制表符分隔数据:制表符分隔列,换行符分隔行。

可以重写下面的代码以提高效率(通过消除每一行的字符串concat),但是您明白了。对于庞大的数据集,最好dlmwrite()避免使用内存限制。

例

function fancyClipboard(myCell)
  if ~iscell(myCell), error('Input must be a cell'); end
  if ndims(myCell) > 2, error('Only 1D & 2D cells supported.'); end

  str = [];
  newline = sprintf('\n');
  for i = 1:size(myCell, 1); 
    row = sprintf('%s\t', myCell{i,:});
    row(end) = newline;
    str = [str row]; %#ok<AGROW>
  end
  clipboard('copy',str);
end
Run Code Online (Sandbox Code Playgroud)