How do I delete an entire row from Excel from MATLAB?
48 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
James Boyle
il 5 Lug 2017
Modificato: Mark Anthony Rivas
il 29 Feb 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 Commenti
Risposta accettata
Guillaume
il 10 Lug 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 Commenti
Sara
il 31 Gen 2018
If I wanted to hide the row instead of deleting it, what would change from this code above?
Mark Anthony Rivas
il 29 Feb 2020
Modificato: Mark Anthony Rivas
il 29 Feb 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
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Spreadsheets in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!