格式范围如Excel 2003中的表格

时间:2013-10-15 22:45:14

标签: c# .net interop excel-2003

以下为Excel 2007编写的代码将范围格式化为表格而没有问题。

SourceRange.Worksheet.ListObjects.Add(XlListObjectSourceType.xlSrcRange,
            SourceRange, System.Type.Missing, XlYesNoGuess.xlYes, System.Type.Missing).Name = TableName;
            SourceRange.Worksheet.ListObjects[TableName].TableStyle = TableStyleName;
            SourceRange.AutoFilter(1, Type.Missing, XlAutoFilterOperator.xlAnd, Type.Missing, true);
            if (IsGroupTable)
            {
                SourceRange.Rows.Group(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
            }

当我尝试在Excel 2003中使用相同的代码时,出现以下错误:

Type : System.Runtime.InteropServices.COMException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Message : Member not found. (Exception from HRESULT: 0x80020003 (DISP_E_MEMBERNOTFOUND))
Source : mscorlib
Help link : 
ErrorCode : -2147352573
Data : System.Collections.ListDictionaryInternal
TargetSite : System.Object ForwardCallToInvokeMember(System.String, System.Reflection.BindingFlags, System.Object, Int32[], System.Runtime.Remoting.Proxies.MessageData ByRef)
Stack Trace : at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
at Microsoft.Office.Interop.Excel.ListObjects.Add(XlListObjectSourceType SourceType, Object Source, Object LinkSource, XlYesNoGuess XlListObjectHasHeaders, Object Destination)

我不确定导致此错误的原因是什么,是否可以挽救?

1 个答案:

答案 0 :(得分:1)

ListObject在2007年之前发生了翻天覆地的变化。我建议您查看changes to ListObject here以了解您尝试使用2003年不支持的内容。