
AppDesignerで作成したアプリのテーブルコンポーネントの値をクリップボードへ格納する方法
4 views (last 30 days)
Show older comments
AppDesignerで作成したアプリのテーブルコンポーネントに出力した値を
クリップボードに格納したいと思います。
どのようにすればよろしいでしょうか?
0 Comments
Answers (1)
交感神経優位なあかべぇ
on 24 Aug 2022
テーブルのデータをどのようなデータ形式としてクリップボードにコピーするのか、また、テーブル内のデータはどのようなデータ形式を持つことを想定しているのか、分からなかったので、とりあえず、文字列型、数値型を持つテーブルのデータを列間はコンマ、行間は改行コードを挿入した文字列に変換して、クリップボードにコピーするボタンを作成してみました。
g = uigridlayout('ColumnWidth', {'1x'}, 'RowHeight',{'1x', 25}); % 2行を持つgridlayoutの作成
t = uitable(g, 'Data', {1,'a'; 'b', 2}, 'ColumnEditable', true);% テーブル作成
uibutton(g, 'ButtonPushedFcn', @(src, event) CopyClipbord(t), 'Text', 'クリップボードへコピー');% クリップボードコピー関数を呼び出すボタン作成
function CopyClipbord(t)
clipbordData = '';
for rowIdx = 1 : size(t.Data, 1)
for columnIdx = 1 : size(t.Data, 2)
data = t.Data{rowIdx, columnIdx};
if isnumeric(data)
data = num2str(data);% 数値は文字列へ変換
end
clipbordData = [clipbordData, data, ','];% テーブルのひとつのセルの値と, の代入
end
clipbordData(end) = newline; % 列間を示す,を削除し、改行コードを挿入
end
clipbordData(end) = ''; % 末尾の改行コードを削除
clipboard('copy', clipbordData);% クリップボードへ文字列をコピー
end

下記はクリップボードへのコピーの結果の貼り付け
1,a
b,2
0 Comments
See Also
Categories
Find more on 対話型コントロールとコールバック in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!