Converting a CSV into a XLS through MatLab
显示 更早的评论
Hello
I have a large set of data that is formatted in .csv and I was wondering if there was a way through MatLab that could convert it to an .xls.
Thanks,
-Frank
source_dir = 'C:\Users\xuf\Desktop\Raw Data (CSV)'
dest_dir = 'C:\Users\xuf\Desktop\Converted Raw Data (Excel)'
source_files = dir(fullfile(source_dir, '*.csv'));
for i = 1:length(source_files)
data= csvread(fullfile(source_dir,source_files(i).name));
xlswrite(fullfile(dest_dir,source_files(i).name), data);
end
采纳的回答
更多回答(2 个)
Fangjun Jiang
2011-5-10
0 个投票
Why bother? Open the .csv file in Excel and save it as .xls.
7 个评论
Walter Roberson
2011-5-10
Or in OpenOffice if Excel isn't handy.
Frank
2011-5-10
Fangjun Jiang
2011-5-10
If you don't need to do any data processing and just need to do the conversion for multiple files, I suggest you use the actxserver('excel.application'). Go through a loop, open the .csv file and save it as .xls file.
Andy
2011-5-10
That's what xlsread does anyway. Why reinvent the wheel? See my comment on my answer above.
Fangjun Jiang
2011-5-10
It certainly will be much faster. You can open xlsread.m and xlswrite.m to see how much stuff is wasted for this task.
Walter Roberson
2011-5-10
How much time spent coding and debugging the actxserver() version? How much time spent executing xlsread() and xlswrite() for 20 files?
Fangjun Jiang
2011-5-10
I don't want to get into an argument here. But for using actxserver(), it needs one command to open the server at the beginning and one command at the end to delete it. For each loop, one command to open the csv file and one command to save as .xls file.
The time save would be huge if the Excel file is large.
In terms of debugging, that will depends on your experience, right?
At issue is taking the right approach to tackle the task.
Harish TV
2017-3-17
编辑:Walter Roberson
2017-3-17
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---------------------']);
类别
在 帮助中心 和 File Exchange 中查找有关 Spreadsheets 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!