loading multiple excel files in a loop

4 vues (au cours des 30 derniers jours)
Brian
Brian le 15 Juil 2011
Commenté : Himmat le 18 Sep 2015
I have thousands of excel files that contain data in a 1440x~35 array. I only need a few columns in each file. The excel files are logically ordered with the pattern 1018ahua.xls, 1019ahua.xls, etc. I have tried loading columns in a loop using the xlsread command in a variety of ways and am always unable to do it. I use Matlab R2010b. Can anyone help me?

Réponse acceptée

Friedrich
Friedrich le 15 Juil 2011
Hi,
first of all doing a xlsread in a loop is a bad idea since you always open and close the EXCEL COM Server. You have to do it manually in a better way, like:
%open Excel
ex = actxserver('excel.application');
for i=1:thousands_of_excel_files
ex.Workbooks.Open('C:\absolut_path_to file\filename.xls')
out = get(ex.Range('B3:D6'),'Value')
end
ex.Quit
So if its really ordered like 1018ahua.xls, 1019ahua.xls and so on you can do
%open Excel
ex = actxserver('excel.application');
for i=1018:thousands_of_excel_files
ex.Workbooks.Open(['C:\absolut_path_to file\',num2str(i),'ahua.xls'])
out = get(ex.Range('B3:D6'),'Value')
end
ex.Quit
  4 commentaires
Image Analyst
Image Analyst le 20 Août 2014
Katerina, start your own thread and attach your code (m-file) and full description of what "does not work" means to you (screenshots, error messages, etc.)
Himmat
Himmat le 18 Sep 2015
Hello Fredrich, I tried to use this code and facing a problem that output data is only from last excel sheet. I want to import column 1 and 3 from each excel file from a group of 10 and put it in one matrix. Can you suggest a way to do it. Thank you for your help.

Connectez-vous pour commenter.

Plus de réponses (1)

Sean de Wolski
Sean de Wolski le 15 Juil 2011
Have you read: FAQ4.12?

Catégories

En savoir plus sur Data Import from MATLAB dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by