Skip to main content
A newer version of this page is available. .
.NET Framework 4.5.2+
Row

Workbook.LoadDocument(Stream, DocumentFormat) Method

Loads a document in the specified format from a stream.

You need a license for the DevExpress Office File API Subscription or DevExpress Universal Subscription to use this method in production code.

Namespace: DevExpress.Spreadsheet

Assembly: DevExpress.Docs.v21.2.dll

Declaration

public bool LoadDocument(
    Stream stream,
    DocumentFormat format
)

Parameters

Name Type Description
stream Stream

The stream from which to load a document.

format DocumentFormat

A DocumentFormat enumeration member that specifies the format of the loaded document.

Returns

Type Description
Boolean

true, if a document was loaded successfully; otherwise, false.

Remarks

If you attempt to load a document in an incorrect format, the Workbook.InvalidFormatException event fires. To throw an exception when an invalid document is loaded, set the WorkbookImportOptions.ThrowExceptionOnInvalidDocument property to true (use the Workbook.Options.Import notation to access import options).

Handle the Workbook.DocumentLoaded event to determine when you can safely modify the loaded document.

// Add a reference to the DevExpress.Docs.dll assembly.
using DevExpress.Spreadsheet;
using System.IO;
// ...

Workbook workbook = new Workbook();

// Load a workbook from the stream.
using (FileStream stream = new FileStream("Documents\\Document.xlsx", FileMode.Open)) {
    workbook.LoadDocument(stream, DocumentFormat.Xlsx);
}

You can pass a non-seekable stream (a stream that does not support the Seek operation, for instance, a NetworkStream) to the LoadDocument method. In this case, the stream is copied to a memory stream to load a document.

Note

If you use the DocumentFormat.Undefined value as the method’s format parameter, the document’s format is detected automatically.

Calculate Formulas in the Loaded Document

The default calculation mode for a Workbook is Manual. This mode implies that the Spreadsheet does not recalculate formulas when you load a document. Call the Workbook.Calculate or Workbook.CalculateFull method to recalculate all formulas in the workbook.

using (Workbook workbook = new Workbook())
{
    // Load a document.
    // ...
    // Calculate formulas in the document.
    workbook.Calculate();
    // ...
}

Change Calculation Mode

Use the Workbook.Options.CalculationMode property to change the calculation mode for a Workbook.

The following calculation modes are available:

  • Manual (default) - Formulas are calculated only on demand (after the Calculate method call). It allows you to improve document generation speed for large workbooks with multiple formulas.

  • UseDocumentSettings - Uses the calculation mode specified in the loaded document (this value is stored in the Workbook.DocumentSettings.Calculation.Mode property).

  • Automatic - Recalculates formulas each time a cell value, formula, or defined name changes.

using (Workbook workbook = new Workbook())
{
    // Change the calculation mode.
    workbook.Options.CalculationMode = WorkbookCalculationMode.UseDocumentSettings;
    // ...
    // Load a document.
    // ...
}
See Also