使用带有Excel模板的XlsIO时出现ArgumentOutOfRangeException

时间:2013-07-10 06:37:07

标签: excel windows-8 windows-runtime syncfusion

我正在使用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);

1 个答案:

答案 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

此致

约翰逊