Convert multiple csv to xls files.

12 次查看(过去 30 天)
Hi!
I have a folder containing many excel files ( more than 200) in csv format . I need to write all these files in xls format.
Can this be done in matlab . Can anyone please help.
Thanks in advance

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2013-10-25
编辑:Azzi Abdelmalek 2013-10-25
yourfolder='E:\matlab'
d=dir([yourfolder '\*.csv']);
files={d.name};
for k=1:numel(files)
old_name=files{k};
[~,~,b] = xlsread(old_name) ;
new_name=strrep(old_name,'csv','xls')
xlswrite(new_name,b);
end
  7 个评论
Walter Roberson
Walter Roberson 2018-6-1
More correct would be
yourfolder = 'E:\matlab'
d = dir(fullfile(yourfolder, '*.csv'));
files = {d.name};
for k=1:numel(files)
old_name = files{k};
[~,~,b] = xlsread( fullfile(yourfolder, old_name)) ;
new_name = strrep(old_name,'csv','xls')
new_folder = 'E:\another'
new_file = fullfile(new_folder, new_name)
xlswrite(new_file,b);
end
Onur ALPAY
Onur ALPAY 2020-12-8
Hi,
I am using MATLAB 2019a version and it looks there is no problem with version. I try this code but I realized that the below code doesn't work. It gives me the same file name. Do you have any experiance about that?
new_name = strrep(old_name,'csv','xls')

请先登录,再进行评论。

更多回答(2 个)

Fabian Neira
Fabian Neira 2018-6-1
I got the following error "File name must be a character vector" when using the code.

Lotan Jackson
Lotan Jackson 2020-8-25
Hi everyone, I know this is an old question but I had to adjust things for either the newest version or being on a newest matlab version. Here's the code. I placed all the files in the folder with the script.
file = dir('*.csv');
s= size(file,1);
for i= 1:s
Data = readtable(file(i).name);
filename=file(i).name;
filename= filename(1:end-5);
writetable(Data,[filename '.xls']);
end;
Hope this helps anyone in the future. :)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by