Workbook.LoadDocument(Stream) Method
SECURITY NOTE
Downloading documents passed into the Load
method may create security issues. Review the following help topic and learn how to spot, analyze, and prohibit unwanted download requests:
Suppress Control Requests to Download Data from External URLs
Loads a document 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.v24.2.dll
NuGet Package: DevExpress.Document.Processor
#Declaration
#Parameters
Name | Type | Description |
---|---|---|
stream | Stream | The stream from which to load a document. |
#Returns
Type | Description |
---|---|
Boolean | true, if a document was loaded successfully; otherwise, false. |
#Remarks
The Spreadsheet uses the built-in IFormatDetectorService service implementation to detect the loaded document’s format. The following formats can be detected:
- XLSX, XLSB, XLSM, XLTX, XLTM (non-encrypted files only)
- XLS, XLT
- CSV, TXT (only if a file is loaded from a FileStream instance).
If format detection fails, the Workbook.InvalidFormatException event fires.
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.
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);
}
#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.
// ...
}