Skip to main content
.NET 6.0+

ISpreadsheetValueStorage Interface

Declares members of the Spreadsheet editor’s value storage.

Namespace: DevExpress.ExpressApp.Office.Win

Assembly: DevExpress.ExpressApp.Office.Win.v23.2.dll

Declaration

public interface ISpreadsheetValueStorage

Remarks

A Spreadsheet editor’s value storage allows you to implement custom logic executed when saving or loading a Spreadsheet document. Follow the steps below to create a custom value storage that specifies a file storage format.

Tip

We recommend you to use the SpreadsheetPropertyEditor.DocumentFormat property to specify a document storage format (see How to: Customize the Spreadsheet Editor). The example below is shown for demonstration purposes.

  1. Create a class that implements the ISpreadsheetValueStorage interface as shown below in the WinForms module project (MySolution.Module.Win). If your solution does not contain this project, add the Controller to the WinForms application project (MySolution.Win).

    using DevExpress.ExpressApp.Office.Win;
    using DevExpress.Spreadsheet;
    using DevExpress.XtraSpreadsheet;
    // ...
    public class OpenXmlSpreadsheetValueStorage : ISpreadsheetValueStorage {
        public object GetValue(SpreadsheetControl control) {
            return control.SaveDocument(DocumentFormat.OpenXml);
        }
        public void SetValue(SpreadsheetControl control, object propertyValue) {
            byte[] byteArray = propertyValue as byte[];
            if(byteArray != null) {
                control.LoadDocument(byteArray, DocumentFormat.OpenXml);
            }
        }
    }
    
  2. Create a View Controller and access the SpreadsheetPropertyEditor as described in the Ways to Access UI Elements and Their Controls topic. Set the editor’s ValueStorage property to an instance of CustomSpreadsheetValueStorage as shown below:

    using DevExpress.ExpressApp;
    using DevExpress.ExpressApp.Office.Win;
    // ...
    public class CustomSpreadsheetValueStorageController : ObjectViewController<DetailView, Document> {
        protected override void OnActivated() {
            base.OnActivated();
            SpreadsheetPropertyEditor spreadsheetPropertyEditor = View.FindItem("Data") as SpreadsheetPropertyEditor;
            if (spreadsheetPropertyEditor != null) {
                spreadsheetPropertyEditor.ValueStorage = new OpenXmlSpreadsheetValueStorage();
            }
        }
    }
    
See Also