我想通过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
2条答案
按热度按时间zu0ti5jz1#
writematrix
文件的输入使用name, value
,因此在该行中:您应该已经:
免责声明:我还没有测试过这一点,但我相当肯定这会解决你的问题。
oo7oh9g92#
对Writematrix的正确调用应该是:
将DateTime数据写入电子表格文件时,必须将“”PReserve veFormat“”和“”UseExcel“”名称-值对都设置为True,以保留现有的单元格格式。“”您可以查看文档writematrix。
为了回答这个错误,我在MatLab 2019b中本地测试了代码,并以下面的示例方式设置了测试变量:
test = magic(5);
,运行良好。也许错误可能出在您在测试变量中使用的数据中,或者如果您以非常快的速度迭代运行代码,
path_output
可能会存在,改善这一点的一种方法可能是使用更准确的timestamp
。