reading multiple excel files

조회 수: 14 (최근 30일)
Ahmed Khalifa
Ahmed Khalifa 2015년 6월 7일
댓글: Image Analyst 2020년 12월 14일
I have afolder with 150 excel file and I want to read all of them one after another and save them in last in another excel sheet
  댓글 수: 2
Azzi Abdelmalek
Azzi Abdelmalek 2015년 6월 7일
Can you give more details about your data in each Excell file
Ahmed Khalifa
Ahmed Khalifa 2015년 6월 7일
every excel file has one sheet with 4 columns A B C D

댓글을 달려면 로그인하십시오.

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2015년 6월 7일
folder='E:\fold1'
d=dir(folder)
e={d.name}
f=e(~cellfun(@isempty,regexp(e,'.+(?=\.xlsx)','match')))
for k=1:numel(f)-1
data{k,1}=xlsread(f{k})
end
M=cell2mat(data)
xlswrite('new_file',M)
  댓글 수: 1
Ahmed Khalifa
Ahmed Khalifa 2015년 6월 7일
Thanks soooo much alittle nother question ,sorry if i have many excel files with 11 columns for every one and I want to read only column 5,6,7 and write them for all files in only one single file.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
Image Analyst 2015년 6월 7일
Don't use xlsread() for this unless you're prepared to wait a very long time. If you have Windows, you can use ActiveX and get this done in a few seconds. With xlsread(), each time you call it, it has to launch Excel, open your workbook, haul over the data (probably using ActiveX), and finally shut down Excel. With ActiveX, you launch Excel just once, and shut it down just once, so it will be about 150 times faster for 150 workbooks. I attach a demo on how to read and write Excel files with ActiveX. If I have more than 2 files, I never use xlsread or xlswrite - I use ActiveX. If I want more precise control over formatting (decimal places, alignment, coloring, borders, etc.) I use ActiveX, or use a template. It's not hard to learn so don't be afraid - it's just like any other object oriented programming you're used to.
  댓글 수: 8
Brooke Beier
Brooke Beier 2020년 12월 14일
I got a similar warning dialog. Your version of xlswrite1.m may have "Excel=evalin('base','Excel');" by default, but the demo needs "Excel = evalin('caller', 'Excel');".
The difference between 'base' and 'caller' makes the demo run for me.
Image Analyst
Image Analyst 2020년 12월 14일
The version I use has caller, not base. I'm attaching it.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Spreadsheets에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by