Saving and Loading Workbooks
It is possible to save a workbook as an XML document. To do that, call the saveToXml method of the Workbook class. To deserialize a workbook back from its XML representation, call the loadFromXml method. The control raises the serializeTag and deserializeTag events to enable serialization of complex Tag objects. The following code illustrates how to serialize and deserialize a custom worksheet tag:
Java
Copy Code
|
---|
// The custom class that will be used as a tag public class SampleData { public SampleData(String categoryId, int orderNumber) { this.categoryId = categoryId; this.orderNumber = orderNumber; } public String getCategoryId() { return categoryId; } public void setCategoryId(String value) { categoryId = value; }
public int getOrderNumber() { return orderNumber; } public void setOrderNumber(int value) { orderNumber = value; }
private String categoryId; private int orderNumber; }
...
workbook.addWorkbookListener(new WorkbookAdapter() { @Override public void serializeTag(SerializeTagEvent e) { SampleData sampleData = (SampleData)e.getTag();; Element dataElement = e.getContext().addChildElement("Data", e.getRepresentation()); e.getContext().writeString(sampleData.getCategoryId(), "CategoryId", dataElement); e.getContext().writeInt(sampleData.getOrderNumber(), "OrderNumber", dataElement); e.setHandled(true); }
@Override public void deserializeTag(SerializeTagEvent e) { Element dataElement = XmlContext.element(e.getRepresentation(), "Data"); String categoryId = e.getContext().readString("CategoryId", dataElement); int orderNumber = e.getContext().readInt("OrderNumber", dataElement); e.setTag(new SampleData(categoryId, orderNumber)); e.setHandled(true); } }); |