Most Efficient Spreadsheet File
显示 更早的评论
Hello,
I am going to write a Matlab script that will pull data from multiple Excel files. I imagine this script will take a long time to run. I was wondering if I could save my Excel files as a different file type to make the script work more efficiently. I will only be using one spreadsheet from each excel file and I am only going to be reading text from the Excel files.
Thanks.
3 个评论
Guillaume
2014-11-19
Considering it's pretty simple to write your script using xlsread:
- write the code as simply as possible not worrying about optimisation
- if code is too slow, run the profiler
- only then, if the profiler indicates that xlswrite is a bottleneck, replace it with something else.
There's little point in complicating the code if it brings little benefit (premature optimisation).
Image Analyst
2014-11-19
Tell us how many files you will read. Is it more than about 5 or 10 or so?
Daniel
2014-11-20
回答(2 个)
Image Analyst
2014-11-19
1 个投票
It will take a long time, unless you use ActiveX. See my attached ActiveX demo. With ActiveX it only opens and shutdowns Excel once instead of every single time you call xlsread().
3 个评论
Image Analyst
2014-11-19
dlmread(), readtable(), and importdata() are also possible options if your data is formatted properly.
Image Analyst
2014-11-20
For that amount of data, you certainly don't want to use xlsread(). You could use ActiveX, but if you can, I think the fastest way would be to convert the data to text (like a csv file) and use csvread(), dlmread(), or importdata(). ActiveX would be more complicated and probably not faster than these text-reading functions since ActiveX still has to launch Excel.
Daniel
2014-11-20
Evan
2014-11-19
0 个投票
If Image Analyst's solution doesn't work for you, you might try csvread. Assuming you're able to save your data in .csv format, I've found that csvread is a couple orders of magnitude faster than xlsread.
类别
在 帮助中心 和 File Exchange 中查找有关 Spreadsheets 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!