Loading the mail merge templates with the ObjectDataSource data source may cause undesired behavior if the data source is contained in a compiled assembly. This example illustrates how to use a custom service that implements the IObjectDataSourceValidationService interface to validate an ObjectDataSource contained in the loaded mail merge template and prevent the data source from loading.
static void Main() {
Workbook workbook = new DevExpress.Spreadsheet.Workbook();
workbook.ReplaceService<IObjectDataSourceValidationService>(new MyObjectDataSourceValidationService());
workbook.LoadDocument("EmployeesMailMergeTemplate.xlsx");
var result = workbook.GenerateMailMergeDocuments();
result[0].SaveDocument("result.xlsx");
System.Diagnostics.Process.Start("result.xlsx");
}
public class MyObjectDataSourceValidationService : IObjectDataSourceValidationService {
public void Validate(IEnumerable<ObjectDataSource> dataSources) {
// Do nothing to allow loading.
// Clear the DataSource and DataMember properties to prohibit loading.
foreach (ObjectDataSource ds in dataSources) {
if (ds.Name != "EmployeeDS") {
ds.DataSource = null;
ds.DataMember = null;
}
};
}
}
Public Class MyObjectDataSourceValidationService
Implements IObjectDataSourceValidationService
Public Sub Validate(ByVal dataSources As IEnumerable(Of ObjectDataSource)) Implements IObjectDataSourceValidationService.Validate
' Do nothing to allow loading.
' Clear the DataSource and DataMember properties to prohibit loading.
For Each ds As ObjectDataSource In dataSources
If ds.Name <> "EmployeeDS" Then
ds.DataSource = Nothing
ds.DataMember = Nothing
End If
Next ds
End Sub
End Class
<STAThread> _
Shared Sub Main()
Dim workbook As Workbook = New DevExpress.Spreadsheet.Workbook()
workbook.ReplaceService(Of IObjectDataSourceValidationService)(New MyObjectDataSourceValidationService())
workbook.LoadDocument("EmployeesMailMergeTemplate.xlsx")
Dim result = workbook.GenerateMailMergeDocuments()
result(0).SaveDocument("result.xlsx")
System.Diagnostics.Process.Start("result.xlsx")
End Sub