Skip to main content
Row

WorksheetCopyOptions.InvalidFormulaReplacementMode Property

Specifies how to replace copied formulas if they contain references to worksheets that do not exist in the destination workbook.

Namespace: DevExpress.Spreadsheet

Assembly: DevExpress.Spreadsheet.v23.2.Core.dll

NuGet Package: DevExpress.Spreadsheet.Core

Declaration

public FormulaReplacementMode InvalidFormulaReplacementMode { get; set; }

Property Value

Type Description
FormulaReplacementMode

An enumeration member that specifies how to resolve formulas with references to sheets in the source workbook. Default mode is UseExternalReferences.

Available values:

Name Description
UseExternalReferences

Converts references to other sheets in the source workbook to external references.

KeepFormulaValuesOnly

Copies only calculated values for formulas with external references.

Remarks

When you copy a worksheet with formulas to another workbook, the Spreadsheet updates formula references in the copied sheet as follows:

  • Absolute and relative references to cells within the source worksheet point to the copied worksheet in the destination workbook.

    Update references within the target worksheet

  • References to other sheets in the source workbook are converted to external references that include the source workbook name in square brackets.

    Replace references within the target worksheet

Set the InvalidFormulaReplacementMode property to KeepFormulaValuesOnly to paste only calculated values for formulas with external references.

using DevExpress.Spreadsheet;
// ...

using (Workbook sourceWorkbook = new Workbook())
using (Workbook targetWorkbook = new Workbook())
{
    targetWorkbook.LoadDocument(@"Documents\Book1.xlsx");
    sourceWorkbook.LoadDocument(@"Documents\Book2.xlsx");
    // Add a new worksheet to the destination workbook.
    targetWorkbook.Worksheets.Add("Sheet1_Copy");
    // Specify copy options.
    var copyOptions = new WorksheetCopyOptions()
    {
        InvalidFormulaReplacementMode = FormulaReplacementMode.KeepFormulaValuesOnly
    };
    // Copy data from "Sheet1" in the source workbook
    // to the newly created worksheet in the destination workbook. 
    targetWorkbook.Worksheets["Sheet1_Copy"].CopyFrom(sourceWorkbook.Worksheets["Sheet1"], copyOptions);
    targetWorkbook.SaveDocument("Result.xlsx");
}

You can also use the WorksheetCopyOptions.SheetMappings property to replace external references with references to worksheets within the destination workbook. This property allows you to specify mappings between worksheet names in the source and destination workbooks.

See Also