AppDesigne​rで作成したアプリの​テーブルコンポーネン​トの値をクリップボー​ドへ格納する方法

5 views (last 30 days)
和也
和也 on 24 Aug 2022
AppDesignerで作成したアプリのテーブルコンポーネントに出力した値を
クリップボードに格納したいと思います。
どのようにすればよろしいでしょうか?

Answers (1)

交感神経優位なあかべぇ
テーブルのデータをどのようなデータ形式としてクリップボードにコピーするのか、また、テーブル内のデータはどのようなデータ形式を持つことを想定しているのか、分からなかったので、とりあえず、文字列型、数値型を持つテーブルのデータを列間はコンマ、行間は改行コードを挿入した文字列に変換して、クリップボードにコピーするボタンを作成してみました。
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

Categories

Find more on アプリの作成 in Help Center and File Exchange

Products


Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!