Excel中的MatLab Writematrix给出错误:名称不能与内置名称相同

rggaifut  于 2022-11-15  发布在  Matlab
关注(0)|答案(2)|浏览(143)

我想通过MatLab将一个Excel文件复制到不同的路径,然后也使用MatLab将其写入。不知何故,我得到了错误:名称不能与内置名称相同。因为我想要在文件中多次写入,所以我不想每次都手动解决这个问题,我希望在不需要不断地做一些事情的情况下运行代码。有没有办法可以通过代码一次性解决这个问题?这是因为我先复制了Excel文件吗?
代码如下所示:

path_source_template1 = 'Blabla1\Template1.xlsx';

timestamp = datestr(now);
timestamp = strrep(timestamp, ':', '-');
timestamp = strrep(timestamp, ' ', '-');

path_output = fullfile('Blabla2\',timestamp);
mkdir(fullfile(path_output));

path_output_template1 = strcat(path_output,'\Template1.xlsx');

copyfile(path_source_template1,path_output_template1);

然后我想在Template1.xlsx中写入:

writematrix(test,path_output_template1,'Sheet','Test','Range','A1',UseExcel=true,AutoFitWidth=false);

然后我得到这个错误:enter image description here

zu0ti5jz

zu0ti5jz1#

writematrix文件的输入使用name, value,因此在该行中:

writematrix(test,path_output_template1,'Sheet','Test','Range','A1',UseExcel=true,AutoFitWidth=false);

您应该已经:

..., 'Sheet','Test','Range','A1','UseExcel', true,'AutoFitWidth', false);

免责声明:我还没有测试过这一点,但我相当肯定这会解决你的问题。

oo7oh9g9

oo7oh9g92#

对Writematrix的正确调用应该是:

writematrix(test,path_output_template1, 'Sheet','Test','Range','A1', 'UseExcel', true,'AutoFitWidth',false);

将DateTime数据写入电子表格文件时,必须将“”PReserve veFormat“”和“”UseExcel“”名称-值对都设置为True,以保留现有的单元格格式。“”您可以查看文档writematrix
为了回答这个错误,我在MatLab 2019b中本地测试了代码,并以下面的示例方式设置了测试变量:test = magic(5);,运行良好。
也许错误可能出在您在测试变量中使用的数据中,或者如果您以非常快的速度迭代运行代码,path_output可能会存在,改善这一点的一种方法可能是使用更准确的timestamp

相关问题