writecell messes up merge and center when writing to Excel

34 vues (au cours des 30 derniers jours)
Matt C
Matt C le 24 Mar 2021
Modifié(e) : Fernando Meo le 17 Oct 2023
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 commentaires
Mikel Arrinda
Mikel Arrinda le 31 Mar 2023
I have the same issue. Is there any solution to this?
Fernando Meo
Fernando Meo le 17 Oct 2023
Modifié(e) : Fernando Meo le 17 Oct 2023
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.

Connectez-vous pour commenter.

Réponses (0)

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by