How to write data into an excel file but keep the original formatting?
조회 수: 22 (최근 30일)
이전 댓글 표시
How can I write values into my excel file without changing the formatting that already exists. specifically I want to keep the cell formulas and cell colours unchanged. This is what I have so far but it wipes out all formatting:
writetable(ResultMtx,Result_File);
댓글 수: 1
Mathieu NOE
2021년 8월 25일
hello
have you tried to protect your excel file before your write into it from matlab ?
답변 (1개)
Image Analyst
2021년 8월 25일
편집: Image Analyst
2021년 8월 25일
What release are you using? You forgot to enter it for some reason when you filled out the submission form. Yes that was a problem but I believe they fixed it now. Try release r2021a or later. If I recall correctly, it's no longer blowing away my formatting present in an already-existing workbook.
댓글 수: 8
Image Analyst
2025년 9월 15일
When you reply, there should be an icon that looks like a paperclip. Use that. If you see an INSERT icon with a downward pointing arrow, then click on that.
Leo
2025년 10월 13일 3:01
Hello. Sorry for the delayed response - I'll check that email account regularly in future.
So, I've attached two Excel sheets. The first shows the original formatting in each of the sheets - just a copy of "ReadSheet". The second, "..._After", shows the formatting after I use the code below to test writecell, writetimetable, writematrix, and xlswrite . Only the latter leaves the original formatting unchanged.
cd('C:\MATLAB\MatLabTesting')
clc
clear
%% Read data as cells, timetable, and Excel data.
Test1=readcell('ExcelFormatTest.xlsx','Sheet','ReadSheet','Range','E10:K40');
Test2=readtimetable('ExcelFormatTest.xlsx','Sheet','ReadSheet','Range','E10:K40');
Test3=readmatrix('ExcelFormatTest.xlsx','Sheet','ReadSheet','Range','F11:K40');
disp('Finished reading.')
%% Write cells.
writecell(Test1,'ExcelFormatTest.xlsx','Sheet','writecell','Range','E10','PreserveFormat',true);
disp('Finished writing cells.')
%% Write timetable.
writetimetable(Test2,'ExcelFormatTest.xlsx','Sheet','writetimetable','Range','E10','PreserveFormat',true);
disp('Finished writing timetable.')
%% Write matrix. Note: only writes data, leaving dates and headings.
Matrix=Test2.Variables;
writematrix(Test3,'ExcelFormatTest.xlsx','Sheet','writematrix','Range','F11','PreserveFormat',true);
disp('Finished writing matrix.')
%% Write Excel data. Note: only writes data, leaving dates and headings.
xlswrite('ExcelFormatTest.xlsx',Matrix,'xlswrite','F11:K40');
disp('Finished writing Excel data.')
참고 항목
카테고리
Help Center 및 File Exchange에서 Spreadsheets에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!