Back to Devexpress

Workbook.LoadDocument(Byte[]) Method

officefileapi-devexpress-dot-spreadsheet-dot-workbook-dot-loaddocument-x28-system-dot-byte-x29.md

latest6.2 KB
Original Source

Workbook.LoadDocument(Byte[]) Method

SECURITY-RELATED CONSIDERATIONS

Downloading documents passed into the LoadDocument 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 byte array.

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.v25.2.dll

NuGet Package : DevExpress.Document.Processor

Declaration

csharp
public bool LoadDocument(
    byte[] buffer
)
vb
Public Function LoadDocument(
    buffer As Byte()
) As Boolean

Parameters

NameTypeDescription
bufferByte[]

A byte array that contains document data.

|

Returns

TypeDescription
Boolean

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

|

Remarks

The Spreadsheet uses the built-in IFormatDetectorService service implementation to detect the format of the loaded document.

If the format detection fails, the Workbook.InvalidFormatException event fires.

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

You can use the current LoadDocument method overload to load a workbook stored in an external database. Refer to the How to: Store a Workbook in the Database document for more information.

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

Workbook workbook = new Workbook();

// Save a document to a byte array to store it in a database.
byte[] docBytes = workbook.SaveDocument(DocumentFormat.Xlsx);

// ...

// Load the saved document from a byte array into the Workbook instance.
workbook.LoadDocument(docBytes);
vb
' Add a reference to the DevExpress.Docs.dll assembly.
Imports DevExpress.Spreadsheet
' ...

Dim workbook As New Workbook()

' Save a document to a byte array to store it in a database.
Dim docBytes() As Byte = workbook.SaveDocument(DocumentFormat.Xlsx)

' ...

' Load the saved document from a byte array into the Workbook instance.
workbook.LoadDocument(docBytes)

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.

csharp
using (Workbook workbook = new Workbook())
{
    // Load a document.
    // ...
    // Calculate formulas in the document.
    workbook.Calculate();
    // ...
}
vb
Using workbook As New Workbook()
    ' Load a document.
  ' ...
    ' Calculate formulas in the document.
    workbook.Calculate()
    ' ...
End Using

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.

  • C#

  • VB.NET

csharp
using (Workbook workbook = new Workbook())
{
    // Change the calculation mode.
    workbook.Options.CalculationMode = WorkbookCalculationMode.UseDocumentSettings;
    // ...
    // Load a document.
    // ...
}
vb
Using workbook As New Workbook()
  ' Change the calculation mode.
  workbook.Options.CalculationMode = WorkbookCalculationMode.UseDocumentSettings
  ' ...
  ' Load a document.
  ' ...
End Using

Implements

LoadDocument(Byte[])

See Also

Workbook Class

Workbook Members

DevExpress.Spreadsheet Namespace