IWebSpreadsheetValueStorage Interface
Declares members of he Spreadsheet editor’s value storage.
Namespace: DevExpress.ExpressApp.Office.Web
Assembly: DevExpress.ExpressApp.Office.Web.v24.2.dll
NuGet Package: DevExpress.ExpressApp.Office.Web
Declaration
Remarks
A Spreadsheet editor’s value storage allows you to implement custom logic executed when saving or loading a RichText document. Follow the steps below to create a custom value storage that specifies a file storage format.
Tip
We recommend you to use the ASPxSpreadsheetPropertyEditor.DocumentFormat
property to specify a document storage format (see How to: Customize the Spreadsheet Editor). The example below is shown for demonstration purposes.
In the ASP.NET Web Forms Module project, create a class that implements the
IWebSpreadsheetValueStorage
interface as shown below:using DevExpress.ExpressApp.Office.Web; using DevExpress.Spreadsheet; using DevExpress.Web.ASPxSpreadsheet; using System.IO; // ... public class WebOpenXmlSpreadsheetValueStorage : IWebSpreadsheetValueStorage { public object GetValue(ASPxSpreadsheet control) { using (MemoryStream memoryStream = new MemoryStream()) { control.SaveCopy(memoryStream, DocumentFormat.OpenXml); using (StreamReader streamReader = new StreamReader(memoryStream)) { memoryStream.Seek(0, SeekOrigin.Begin); return streamReader.ReadToEnd(); } } } public void SetValue(ASPxSpreadsheet control, object propertyValue, string documentID) { control.Open(documentID, DocumentFormat.OpenXml, () => (byte[])propertyValue); } }
Create a View Controller and access the
ASPxSpreadsheetPropertyEditor
as described in the Ways to Access UI Elements and Their Controls topic. Set the editor’sValueStorage
property to an instance ofCustomWebSpreadsheetValueStorage
as shown below.using DevExpress.ExpressApp; using DevExpress.ExpressApp.Office.Web; // ... public class WebSpreadsheetStorageController : ObjectViewController<DetailView, Document> { protected override void OnActivated() { base.OnActivated(); ASPxSpreadsheetPropertyEditor spreadsheetPropertyEditor = View.FindItem("Data") as ASPxSpreadsheetPropertyEditor; if (spreadsheetPropertyEditor != null) { spreadsheetPropertyEditor.ValueStorage = new WebOpenXmlSpreadsheetValueStorage(); } } }