Converting .xls and .xlsx to .csv

183 views (last 30 days)
mike on 7 Dec 2014
Commented: Image Analyst on 22 Jul 2020
Hey guys,
I was wondering if there was a way I could ask a user if their file is .csv, and if not, I would sent it through a loop to have it converted to .csv. Is there any way I could do that?

Accepted Answer

Image Analyst
Image Analyst on 7 Dec 2014
Edited: Image Analyst on 7 Dec 2014
Why not assume the extension is correct and process it if necessary?
[folder, baseFileName, extension] = fileparts(filename);
if strcmpi(extension, '.xlsx')
numbers = xlsread(filename);
csvFileName = strrep(filename, '.xlsx', '.csv');
csvFileName = strrep(csvFileName, '.xls', '.csv');
csvwrite(csvFileName, numbers);
Image Analyst
Image Analyst on 22 Jul 2020
You can use fprintf() to write it out exactly as you want.

Sign in to comment.

More Answers (2)

Harish TV
Harish TV on 17 Mar 2017
clear; clear all; fileip='filename.csv'; g=char(fileip); g=g(1:end-4) fileop=horzcat(g,'.xlsx') g=fileip(1:end-4); [~,~,F]=xlsread(fileip); F=cellstr(F); %delete the header rows (4 rows) F([1:4],:)=[]; for a=1:size(F,1); b=F(a,1); c=char(b); D(a,:)=strsplit(c,','); end xlswrite(fileop,D); disp(['--------------Process complete---------------------']);

sapna kumar
sapna kumar on 11 Jan 2019
file = dir('*.xlsx'); % make sure your are navigated to the right folder on matlab
s= size(file,1);
for i= 1:s
Data = xlsread(file(i).name);
filename= filename(1:end-5); % to remove extension from filename
csvwrite([filename '.csv'], Data);

Community Treasure Hunt

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

Start Hunting!