writecell messes up merge and center when writing to Excel

36 次查看(过去 30 天)
I tried to switch some of my old xlswrite functions over to writecell as this newer function seems superior in terms of efficiency, however I found that when writing data to cells that have already been merged and centered in an Excel file, writecell wipes out the merge/center. In fact, it seems like writecell wipes other formatting as well (column widths are resized to fit the data). This is pretty annoying as I am just trying to write cell data in specific cells without altering the formatting of the file.
xlswrite does not have this issue. It just puts the data in there.
Any workarounds that don't involve activexserver would be appreciated. At a minimum I would like to understand why this is happening.
  9 个评论
Fernando Meo
Fernando Meo 2023-10-17
编辑:Fernando Meo 2023-10-17
To preserve the Excel format, use the name aurguments as follows
writecell(CellData , FileName, 'Sheet','Sheet1', 'Range', 'A6:S176', 'AutoFitWidth', false, 'UseExcel', true)
However, when writing to cells which were merged, they are unfortuntely wiped out.
A workaround is to manually remerge them using the following:
e = actxserver('Excel.Application');
Workbook = e.Workbooks.Open(FileName);
e.Visible = 1;
Sheet1 = Workbook.Sheets.Item(SheetName);
Range = Sheet1.Range('I2:N2');
Range.MergeCells = true;
Workbook.Save;
Workbook.Close;
This should be an enhancement request for mathworks.

请先登录,再进行评论。

回答(0 个)

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by