MATLAB Answers

How to delete default excel sheets when using writetable function (mac)?

71 views (last 30 days)
When using the writetable function to add several different sheets, excel generates default (blank) excel sheets at the beginning of the document. I currently am working off a mac computer and thus cannot use the actxserver solutions described in other posts.
writetable(T,filename,'sheet','sheet_name');

  1 Comment

Veronique Lago
Veronique Lago on 11 Sep 2019
I found a way around it. Create a template Excel sheet with the sheets you want and the name you want, but empty sheets. In your code, before using writetable, use copyfile to copy your template with the name of the file you want to create. Then, when you use writetable, it opens the sheets with sheets with the name you give from this template and fills it in.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 14 May 2019
Mathworks does not offer any way to do this.
This question was recently explored in the context of someone who was providing sheet names, and was ending up with 3 extra sheets with default names. Someone (dbp I think it was) indicated that when Excel is asked to create a workbook, that it automatically adds the first sheet, and so for compatibility with Excel the first useless sheet is generated. We did not, however, see any good reason for the code to automatically generate sheet2 and sheet3.

More Answers (1)

Sean de Wolski
Sean de Wolski on 16 Sep 2019
Starting in R2019b, specifying the sheet will cause "Sheet"+(1:3) to not be created. This is a new feature of 19b.
writetable(t, 'foo.xlsx', 'Sheet', 'T')
Will only have a sheet, "T".

  3 Comments

Lucie S.
Lucie S. on 25 Mar 2020
As I see there are some changes in R2019b with the Writetable fonction, I take the opurtunity to ask you a question. I have an issue starting with that new Matlab version. I use writetable to copy a table in a template excel file which has different background colors. Before R2019b, I was keeping colors in the template file after using the function. Now I get some white background columns in my template file after using the function. Any idea how to avoid this? I have different types of data that I can't change in my table. The cell data type might be the one used when I get those white background (I will have to check in detail, this is a very complex program).

Sign in to comment.

Sign in to answer this question.