# CopyOptions

> _Since v1.14.0_

Options for programmatic copy operations.

Allows callers to control exactly which columns and rows are included
in a copy, independently of the current selection state.

#### Example

```ts
const clipboard = grid.getPluginByName('clipboard');
// User selected rows 0, 2, 4 via a dialog, chose columns to include
const text = await clipboard.copy({
  rowIndices: [0, 2, 4],
  columns: ['name', 'email'],
  includeHeaders: true,
});
```

## Properties

| Property | Type | Description |
| -------- | ---- | ----------- |
| `columns?` | <code>string[]</code> | Specific column fields to include. If omitted, uses current selection or all visible columns. |
| `rowIndices?` | <code>number[]</code> | Specific row indices to copy. If omitted, uses current selection or all rows. |
| `includeHeaders?` | <code>boolean</code> | Include column headers in copied text. Defaults to the plugin config value. |
| `delimiter?` | <code>string</code> | Column delimiter override. Defaults to the plugin config value. |
| `newline?` | <code>string</code> | Row delimiter override. Defaults to the plugin config value. |
| `processCell?` | <code>(value: unknown, field: string, row: unknown) =&gt; string</code> | Custom cell value processor for this operation. Overrides the plugin config's `processCell`. |
