# Delete Rows Workbook (preview)

> Delete Rows Workbook activity that deletes specific rows, all visible rows, all hidden rows, or duplicate rows from a sheet or range.

`UiPath.Excel.Activities.DeleteRows`

## Description

Deletes specific rows, all visible rows, all hidden rows, or duplicate rows from a sheet or range. This is the cross-platform equivalent of the [Delete Rows](https://docs.uipath.com/activities/other/latest/productivity/delete-rows-x) Windows activity.

:::note
This activity does not support `.xls` files.
:::

## Project compatibility

Windows | Cross-platform

## Properties

### Common

* **DisplayName** - The name displayed for the activity in the Designer panel.

### Input

* **File** - The full path of the resource workbook. To switch to a local path, select the plus icon, and then **Use Local File**. The current field changes to **File (local path)**, where you can provide the full path of the workbook.
* **SheetName** - The name of the sheet from the workbook.
* **Range** - The range to delete rows from. If you don't specify a range, the whole used range of the sheet is used.
* **Option** - Select which rows to delete. This field is required. The default value is **Specific rows**. You can choose from the following options:
  * **Specific rows** - Deletes the rows listed in **At position**.
  * **All visible rows** - Deletes every row that is not hidden.
  * **All hidden rows** - Deletes every hidden row.
  * **All duplicate rows** - Deletes the rows that duplicate an earlier row, comparing all columns.
* **At position** - The rows to delete, as a comma-separated list of row numbers and row ranges, for example `3, 5-7, 10`. The row numbers are 1-based and relative to the start of the range. This field is required, and displayed, only when **Option** is **Specific rows**.

### Options

* **Has Headers** - Select this option if the first row of the range is a header row. The header row is never deleted, whatever the value of **Option**. By default, this option is not selected.

  :::note
  Unlike in the Windows **Delete Rows** activity, **Has Headers** is not selected by default.
  :::

* **Password** - The password of the workbook, if necessary.

### Output

* **Rows Deleted** - The number of rows that the activity deleted, stored as an `Int32` variable.

### Use Workbook

* **Workbook** - The existing workbook to use instead of a file path.

## Notes

* The row numbers in **At position** can be in any order, can overlap, and can be reversed. For example, `10-8` is the same as `8-10`. Each row is deleted and counted once.
* If **At position** is empty or not a valid list, or a position is below 1 or beyond the last row of the range, the activity fails and nothing is deleted.
* The rows below a deleted row shift up to fill the gap.
* If the range covers the whole used range, the hidden or visible state of each row moves with the shift. If the range is narrower than the sheet, the row visibility is left unchanged, because it is a property of the entire row. The exception is **All hidden rows**: each row is shown again right before it is deleted, so the data that shifts up isn't left hidden. This also shows any other data on that row outside the range.
* A whole-column or whole-row range, such as `A:A`, is limited to the used range of the sheet.
* **Range** must refer to the sheet in **SheetName**. A range that includes a sheet name, such as `Sheet2!A1:A10`, is not supported and causes an error.
