每次使用button如何在MATLAB中将数据添加到现有的XLSX文件?

我有一个函数产生一些variables,如分数,对,错,未答复。 这个function是使用button调用的。 问题是我怎么能每次添加/附加函数生成的这些值到一个XLSX文件? 或者,如何创build一个MAT文件,以便可以添加? 什么是可能的解决scheme?

追加到xls文件中的挑战是知道它的最后一行,以避免用xlswrite命令覆盖数据。 我build议看看这个文件交换提交XLSAPPEND ,因为它照顾这个给你。

这听起来像你有一个GUI运行,并希望重复输出数据到Excel文件。 一个可以加速文件输出的选项是在GUI激活时保持COM服务器打开输出,而不是每次调用xlswritexlsappend重复打开和closures一个。 下面是一个示例脚本来说明如何做到这一点:

 function excel_output_example % Start COM server: excel = actxserver('Excel.Application'); excelWorkbook = excel.Workbooks.Add(1); excelSheet = excel.ActiveSheet; fileName = 'example.xlsx'; rowIndex = 1; % Keeps track of the next row to output data to % Create GUI: hFigure = figure('Position', [100 100 120 70], ... 'DeleteFcn', @(~, ~) stop_excel(excelWorkbook, excel)); uicontrol(hFigure, 'Style', 'pushbutton', ... 'Position', [20 20 80 30 ], ... 'String', 'Add to Excel', ... 'Callback', @output_to_excel); function output_to_excel(~, ~) % Adds a random value to the next row in column A excelSheet.Range(sprintf('A%d', rowIndex)).Value = rand(); rowIndex = rowIndex+1; end function stop_excel(workbookObj, comObj) % Stops the COM server workbookObj.SaveAs(fileName); workbookObj.Close(); comObj.Quit(); comObj.delete(); end end 

这将通过一个button打开一个小的GUI窗口。 每次按下button时,新的随机值将被添加到Excel文件的A列中的下一个可用行。 当GUI窗口closures时,保存Excel文件并停止COM服务器。 例如,按下button5次并closuresGUI后,您将在Excel文件中得到如下所示的内容:

在这里输入图像说明