MATLAB のタイマーを使って、プログラムを実行した最後に一度だけ
excelファイルにデータを書き込もうとしています。

TimerCallback.mとtimer_sample.mを同じフォルダに入れて、timer_sample.mを実行します。
MATLABは「mac-64bitのバージョンR2017a」です。

以下のエラーメッセージが出て、excelファイルが書き出されず困っています。
エラーメッセージ

>> timer_sample
Warning: Unable to write to Excel format, attempting to write file to csv format. To write to an Excel file, convert your data to a table and
use writetable. 
> In xlswrite (line 179)
  In TimerCallback/callback (line 20)
  In timer_sample>@(varargin)mycallback.callback(varargin{:})
  In timer/timercb (line 34)
  In timercb (line 24) 
Warning: Unable to write to Excel format, attempting to write file to csv format. To write to an Excel file, convert your data to a table and
use writetable. 
> In xlswrite (line 179)
  In TimerCallback/callback (line 21)
  In timer_sample>@(varargin)mycallback.callback(varargin{:})
  In timer/timercb (line 34)
  In timercb (line 24) 
Callback executed

TimerCallback.m

classdef TimerCallback < handle
    properties  %public properties
        state;
        x_value;
        y_value;
        filename;
    end
    methods
        %constructor
        function this = TimerCallback(filename)
            if nargin > 0
                this.filename = filename;
            end
            this.state = true;
        end

        %callback function
        function callback(this, ~, ~)
            %consider using writetable instead of xlswrite. At least, use only one xlswrite.
            xlswrite(this.filename, this.x_value, 'sender');
            xlswrite(this.filename, this.y_value, 'receiver');
            this.state = false;
            disp('Callback executed');
        end
    end
end

timer_sample.m

mycallback = TimerCallback('data.xlsx');
mytimer = timer('TimerFcn', @mycallback.callback, 'StartDelay', 30);
start(mytimer);
mycallback.x_value = [mycallback.x_value, [1 2 3]];
mycallback.y_value = [mycallback.y_value, [4 5 6]];
mycallback.x_value = [mycallback.x_value, [7 8 9]];
mycallback.y_value = [mycallback.y_value, [10 11 12]];
%and so on... until the Timer completes

試したこと
タイマーを使わなければ、以下のプログラムでexcelファイルに問題なく書き出せることは確認しました。

global x_value
global y_value
global stat
stat = true;
x_value = [x_value [1 2 3]]
y_value = [y_value [4 5 6]]
x_value = [x_value [7 8 9]]
y_value = [y_value [10 11 12]]
filename = 'data.xlsx';
x_range = 'sender';
y_range = 'receiver';
xlswrite(filename, x_value, x_range) 
xlswrite(filename, y_value, y_range)