Удаление строк в Excel, содержащих определённый текст (в Delphi)
Допустим, нам необходимо удалить все строки на листе в excel файле, содержащие символ «х» в первой колонке.
Ниже представлен пример кода, который добавляем в обработчик событий OnClickкомпонента TButton:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
procedure TForm1.Button1Click(Sender: TObject); var XL: Variant; i: Integer; begin //не забудьте включить ComObj в список используемых модулей XL := CreateOLEObject('Excel.Application'); // Создание OLE объекта XL.WorkBooks.add; XL.WorkBooks.Open('C:\book.xls'); XL.Visible:=true; for I := 50 downto 1 do begin if XL.Cells[I,1].value='x' then begin XL.Rows[I].delete; end; end; end; |
Обратите внимание, что цикл организован снизу вверх, в случае же обработки строк сверху вниз не все строки будут удаляться корректно, т.к. при удалении строки в excel меняется адресация.