How do I delete an entire row from Excel from MATLAB?
48 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
James Boyle
le 5 Juil 2017
Modifié(e) : Mark Anthony Rivas
le 29 Fév 2020
Ultimately I want to delete an entire row from an excel file (say, row 10) and shift the rows 11 onwards up so that there isn't an empty space in the file.
I can envisage a long winded solution to this using xlswrite to overwrite all the previous rows, but is there a simple solution to this? I can't find a way of doing it anywhere.
Many thanks!
Using R2016a
2 commentaires
Réponse acceptée
Guillaume
le 10 Juil 2017
It's not hard to do in matlab if you know excel VBA. If you don't, it's just as easy to record a macro in excel and use that rather than trying to do it in matlab.
The following should work (untested since I don't have matlab installed on this machine):
file = 'C:\somewhere\somefile.xlsx';
sheet = 'Sheet1'; %can be name or numeric index
row = 10;
excel = actxserver('Excel.Application');
workbook = excel.Workbooks.Open(file);
worksheet = workbook.Worksheets.Item(sheet);
worksheet.Rows.Item(row).Delete;
workbook.Save;
excel.Quit;
3 commentaires
Sara
le 31 Jan 2018
If I wanted to hide the row instead of deleting it, what would change from this code above?
Mark Anthony Rivas
le 29 Fév 2020
Modifié(e) : Mark Anthony Rivas
le 29 Fév 2020
This will only remove the items on the table but not on excel.
function UITableCellSelection(app, event)
indices = event.Indices
data = app.UITable.Data;
row = indices(:,1);
app.UITable.Data(row,:) = [];
end
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Spreadsheets dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!