我正在使用SyncFusion XlsIo将数据导出到Excel工作表。将数据导出到excel时遇到一些问题。我觉得我在excel模板中遇到了问题。首先,我想知道如何为excel创建模板,所以我可以在那里放置值?我想做类似的事情,这是由SyncFusion SDK提供的示例应用程序。我试图复制那个excel模板,但它不起作用并抛出异常。下面给出了例外情况。
异常:System.ArgumentOutOfRangeException未被用户处理 code HResult = -2146233086 Message =找不到属性参数 name:strText Source = Syncfusion.XlsIO.WinRT ParamName = strText
堆栈跟踪: 在Syncfusion.XlsIO.Implementation.TemplateMarkers.TemplateMarkersImpl.GetNextValue(Object 价值,字符串& strText,String& newNumberFormat,类型&安培; NEWTYPE) 在Syncfusion.XlsIO.Implementation.TemplateMarkers.TemplateMarkersImpl.SetSimpleValue(Object value,String strText,IWorksheet sheet,
IMigrantRange migrantRange,IList`1 arrMarkerCells,IList lstArguments,MarkerOptionsImpl选项,RangeBuilder构建器, UnknownVariableAction
action,String numberFormat,Type valueType) 在Syncfusion.XlsIO.Implementation.TemplateMarkers.TemplateMarkersImpl.SetArrayValue(IList) value,String strText,IWorksheet sheet,
IMigrantRange migrantRange,IList`1 arrMarkerCells,IList lstArguments,MarkerOptionsImpl选项,RangeBuilder构建器, UnknownVariableAction
action,VariableTypeAction variableTypeAction) 在Syncfusion.XlsIO.Implementation.TemplateMarkers.TemplateMarkersImpl.SetUnknownVariable(Object value,String strText,IWorksheet sheet,
IMigrantRange migrantRange,IList`1 arrMarkerCells,IList lstArguments,MarkerOptionsImpl选项,RangeBuilder构建器, UnknownVariableAction
action,VariableTypeAction variableTypeAction) 在Syncfusion.XlsIO.Implementation.TemplateMarkers.TemplateMarkersImpl.SetVariable(String strVariable,String strText,IWorksheet sheet,
IMigrantRange migrantRange,IList`1 arrMarkerCells,IList lstArguments,MarkerOptionsImpl选项,RangeBuilder构建器, UnknownVariableAction
动作) 在Syncfusion.XlsIO.Implementation.TemplateMarkers.TemplateMarkersImpl.ApplyMarker(IWorksheet 表,IList`1 arrCells,Int32 i,IMigrantRange
migrantRange,UnknownVariableAction action) 在Syncfusion.XlsIO.Implementation.TemplateMarkers.TemplateMarkersImpl.ApplyMarkers(IWorksheet sheet,List`1 arrLabels,UnknownVariableAction
动作) 在Syncfusion.XlsIO.Implementation.TemplateMarkers.TemplateMarkersImpl.ApplyMarkers(IWorkbook) 书,UnknownVariableAction动作) 在Syncfusion.XlsIO.Implementation.TemplateMarkers.TemplateMarkersImpl.ApplyMarkers(UnknownVariableAction) 行动) 在InvoiceExportDemo.ExportToExcel.d__0.MoveNext()中 d:\项目\ InvoiceExportDemo \ InvoiceExportDemo \助手类
\ ExportToExcel.cs:第29行
行:marker.ApplyMarkers(UnknownVariableAction.Skip);
答案 0 :(得分:1)
由于使用问题,引发了此异常。输入模板中的自定义类属性名称和标记应匹配。使用以下过程创建带标记的输入模板,并参考提供的示例。
使用模板标记创建输入模板:
语法: %classname.PropertyName
示例: %InvoiceItem.ItemName
表示excel文件中的上述字符串,然后在示例中使用下面的代码片段。
List<InvoiceItem> items = new List<InvoiceItem>();
items.Add(new InvoiceItem("Essential Studio WinRT", 1, 399, 50));
items.Add(new InvoiceItem("Essential ASP.NET ", 1, 995, 70));
//Create Template Marker Processor
ITemplateMarkersProcessor marker = book.CreateTemplateMarkersProcessor();
//Binding the business object with the marker.
marker.AddVariable("InvoiceItem", items);
//Applies the marker.
marker.ApplyMarkers(UnknownVariableAction.Skip);
示例: Template_Marker_Sample.zip
此致
约翰逊