xlswrite an empty string

I have a list of words in an excel file. I want to delete on item from the list and then move up the words below so there are no blanks, empty cells. I read the file with xlsread. Then I get the shorten list. Finally, I write that array into the same file. The problem is the last item of the original array is still there. For example if the list of words is 'word1 word2 word3' and I delete 'word2' producing 'word1 word3' When I wire this the file contains 'word1 word3 word3' I do not want the second 'word3' there. I've tried putting '' in the last row but that appears as NaN in the excel file.

 Akzeptierte Antwort

Oleg Komarov
Oleg Komarov am 10 Aug. 2012

0 Stimmen

You can control the excel file directly without importing it through ActiveX:
% Open the excel file (it remains invisible however)
excel = actxserver ('Excel.Application');
% excel.Visible = 1;
workbook = excel.Workbooks.Open('C:\Users\ok1011\Desktop\test.xlsx');
% Activate the sheet you need (optional if the sheet is the first)
workbook.Worksheets.Item(1).Activate;
% Delete A2, shifts upwards
workbook.ActiveSheet.Range('A2').Delete
% Now save/close/quit/delete
% excel.Visible = 0;
workbook.Save;
excel.Workbook.Close;
invoke(excel, 'Quit');
delete(excel)

3 Kommentare

Jim
Jim am 10 Aug. 2012
Oleg,
Thanks - it works fine. now, The word I want to delete will change. The cell containing the word to be deleted will always be in column A but the row will change. How do I write the code to have the row be the number in 'worddelete(1,1)'
Thanks, Jim
Oleg Komarov
Oleg Komarov am 10 Aug. 2012
workbook.ActiveSheet.Range(sprintf('A%d',wordelete(1,1))).Delete
Jim
Jim am 11 Aug. 2012
thanks again

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by