Converting a CSV into a XLS through MatLab

51 ビュー (過去 30 日間)
Frank
Frank 2011 年 5 月 10 日
編集済み: Walter Roberson 2017 年 3 月 17 日
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

採用された回答

Andy
Andy 2011 年 5 月 10 日
You could import it (in various ways: csvread, import, etc.) and then write out to Excel via xlswrite.
  5 件のコメント
Walter Roberson
Walter Roberson 2011 年 5 月 10 日
You probably want to tell xlswrite() what you want written ;-)
Andy
Andy 2011 年 5 月 10 日
Good catch, sorry:
[dummy, dummy, raw] = xlsread('filename.csv')
xlswrite('filename.xls',raw)

サインインしてコメントする。

その他の回答 (2 件)

Fangjun Jiang
Fangjun Jiang 2011 年 5 月 10 日
Why bother? Open the .csv file in Excel and save it as .xls.
  7 件のコメント
Walter Roberson
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
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
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---------------------']);

カテゴリ

Help Center および File ExchangeSpreadsheets についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by