Excel SaveAs method and naming conventions

I was curious if there was a built in WB.SaveAs method and how to use it.
I'm currently using WB.Save to highlight the difference between two excel files, but wanted to have not override the original document.
Also would like the files' names to end differently as well by using the folder's names at end, as excel doesn't want to open up two files with the same names.

 Accepted Answer

Image Analyst
Image Analyst on 21 Jun 2022
Edited: Image Analyst on 21 Jun 2022
There is a SaveAs method. You can record a macro in Excel to see how it's typically used. Or see this:
You might also like to look at the functions strrep, fileparts, and sprintf to create new filenames.
I'm also attaching an Excel_utils class with a bunch of useful functions.

6 Comments

Hi, I read through the link and some other similar questions posted here and tried to use the code below, but still having trouble saving it as a new excel file.
WB.SaveAs([pwd,'\',xls_fname,'_',file_index,'.xlsx'])
Hi, I looked at the code written and ran the example problem.
But I'm still having trouble with the saveas portion
This is my current code
NewExcel=char(pwd,'\',fname,'_',num2str(file_index),'.xlsx');
NewExcel=reshape(NewExcel',1,[]);
WB.SaveAs(NewExcel);
Maybe the way I wrote NewExcel is wrong?
Why are you doing that reshape() of the file name?
Note: I recommend that you use fullfile()
Try it this way:
baseFileName = sprintf('%s_%2.2d.xlsx', fname, file_index);
fullFileName = fullfile(pwd, baseFileName);
fprintf('Saving "%s".\n', fullFileName);
WB.SaveAs(fullFileName);
Thank you everyone it works now!

Sign in to comment.

More Answers (0)

Categories

Find more on Environment and Settings in Help Center and File Exchange

Tags

Asked:

on 21 Jun 2022

Commented:

on 29 Jun 2022

Community Treasure Hunt

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

Start Hunting!