append (a row) to the end of an excel sheet

85 views (last 30 days)
Moh. Saadat
Moh. Saadat on 5 Apr 2020
Edited: Marcel on 30 Nov 2022
Hi,
I would like to know if there is any way to simply append to the next available row in an existing excel sheet. I know I can do the append with the writematrix function by specifying the 'Range' property.
writematrix(matrix_to_add, filename, 'Range', 'A1:D20'); %% this adds the matrix_to_add variable in the specified block
However, I do not wish to explicitly specify the range. The rows being added are quite long: 1000 elements. Hence, specifying range will be inconvenient. Thus, the solution I am looking for will simply add the row to the 51st row in the excel sheet if there are already 50 rows in the sheet.
Thanks!
  3 Comments
Brian Bean
Brian Bean on 20 Nov 2021
Is there a way to do the same thing, without altering the column width or any previous rows. When I have merged cells in row 1, use writemateix, row 1 cells becomes unmerged. Thanks!
Walter Roberson
Walter Roberson on 21 Nov 2021
If I recall correctly, with new enough versions of MATLAB, if you use writecell() then it will not change the format of existing cells.

Sign in to comment.

Answers (2)

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 21 Nov 2021
This is how you can get it:
FName = 'DATA.xlsx';
for ii=1:5
writematrix(magic(3), FN, 'WriteMode','append')
end

Marcel
Marcel on 18 Nov 2022
Edited: Marcel on 30 Nov 2022
This is how im appending text to a xls file. cellstr("Test") would be your data
writecell(cellstr("Test"), "file.xls", 'WriteMode','append');

Community Treasure Hunt

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

Start Hunting!