导出Excel文件“object”未包含“get_Range”的定义

jiejie526 2010-12-06 09:58:40
{Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: “object”未包含“get_Range”的定义
在 CallSite.Target(Closure , CallSite , ComObject , Object , Object )
在 System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2)
在 CallSite.Target(Closure , CallSite , Application , Object , Object )
在 System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2)
在 Supcon.MOM.Facade.Export.UltraWebGridExportToExcel(UltraWebGrid grid, String title, Boolean isShowHiddenRow, Boolean isShowHiddenCol, HttpResponse Response)
...全文
2227 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuheng0114 2013-07-19
  • 打赏
  • 举报
回复
原来的 Excel.Range targetRange = excelApp.get_Range("A1", Type.Missing 换成 Excel.Range targetRange = excelApp.Range["A1", Type.Missing 就可以用了,get_Range换成Range,括号换成[]
kyo412466275 2012-10-16
  • 打赏
  • 举报
回复
我用了,直接报错,求指教。
yellowgiutou 2011-06-07
  • 打赏
  • 举报
回复
Range
jiejie526 2010-12-06
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yan267 的回复:]
引用 12 楼 jiejie526 的回复:
引用 10 楼 yan267 的回复:
引用 8 楼 jiejie526 的回复:
引用 7 楼 yan267 的回复:
引用 6 楼 jiejie526 的回复:
引用 5 楼 yan267 的回复:
引用 3 楼 jiejie526 的回复:
引用 2 楼 yan267 的回复:
C# code

Excel.Applicati……
[/Quote]


在你回答我前,我有个同事让我用Range,说就应当用这个,我要来给你们说时,看到你既然也提到了。


呵呵,就应当用Range这个才对。

yan267 2010-12-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 jiejie526 的回复:]
引用 10 楼 yan267 的回复:
引用 8 楼 jiejie526 的回复:
引用 7 楼 yan267 的回复:
引用 6 楼 jiejie526 的回复:
引用 5 楼 yan267 的回复:
引用 3 楼 jiejie526 的回复:
引用 2 楼 yan267 的回复:
C# code

Excel.Application xlApp = new Excel.App……
[/Quote]

公司没有装2010,没有办法帮你改那个类。

你自己修改下啊,把get_Range换成Range看看了。

jiejie526 2010-12-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yan267 的回复:]
引用 8 楼 jiejie526 的回复:
引用 7 楼 yan267 的回复:
引用 6 楼 jiejie526 的回复:
引用 5 楼 yan267 的回复:
引用 3 楼 jiejie526 的回复:
引用 2 楼 yan267 的回复:
C# code

Excel.Application xlApp = new Excel.Application();
Excel.Wo……
[/Quote]


请教高手, 如何修改


fendouaj 2010-12-06
  • 打赏
  • 举报
回复
看看你的权限够不够。
yan267 2010-12-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jiejie526 的回复:]
引用 7 楼 yan267 的回复:
引用 6 楼 jiejie526 的回复:
引用 5 楼 yan267 的回复:
引用 3 楼 jiejie526 的回复:
引用 2 楼 yan267 的回复:
C# code

Excel.Application xlApp = new Excel.Application();
Excel.Workbook workbook = xlApp……
[/Quote]

这个是net2.0的,如果你生成net2.0,应该不会出现问题。

但是net4,简化了很多office的API访问,你只能去修改这个类符合net4的标准。

例如 原来的
Excel.Range targetRange = excelApp.get_Range("A1", Type.Missing);

只能换成
Excel.Range targetRange = excelApp.Range["A1"]

类似这样的,
threenewbee 2010-12-06
  • 打赏
  • 举报
回复
其实,一个类的 get_XXX 在 C# 里面是不能直接调用的。

它就是属性的 get 方法。
比如直接赋值Range r = obj.Range;
jiejie526 2010-12-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yan267 的回复:]
引用 6 楼 jiejie526 的回复:
引用 5 楼 yan267 的回复:
引用 3 楼 jiejie526 的回复:
引用 2 楼 yan267 的回复:
C# code

Excel.Application xlApp = new Excel.Application();
Excel.Workbook workbook = xlApp.Workbooks.Add(true)……
[/Quote]


我用的是 VS2010 4.0

下面地址有我的类
你可以看下
http://blog.csdn.net/oneiter/archive/2007/04/03/1550711.aspx
yan267 2010-12-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jiejie526 的回复:]
引用 5 楼 yan267 的回复:
引用 3 楼 jiejie526 的回复:
引用 2 楼 yan267 的回复:
C# code

Excel.Application xlApp = new Excel.Application();
Excel.Workbook workbook = xlApp.Workbooks.Add(true);
Excel.Worksheet work……
[/Quote]
怕权限不够而已,

是否是用vs2010开发的?net3.5 or 4.0?


如果是不能用原来的写法。

应该是:



var excelApp = new Excel.Application();

Excel.Range targetRange = excelApp.Range["A1"]


jiejie526 2010-12-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yan267 的回复:]
引用 3 楼 jiejie526 的回复:
引用 2 楼 yan267 的回复:
C# code

Excel.Application xlApp = new Excel.Application();
Excel.Workbook workbook = xlApp.Workbooks.Add(true);
Excel.Worksheet worksheet = (Excel.Works……
[/Quote]

office肯定装了嘛


没有安装到GAC里面
dcomcnfg 中配置EXCEL权限,everyone


你说的这两项什么意思

肯本用不着嘛

yan267 2010-12-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jiejie526 的回复:]
引用 2 楼 yan267 的回复:
C# code

Excel.Application xlApp = new Excel.Application();
Excel.Workbook workbook = xlApp.Workbooks.Add(true);
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheet……
[/Quote]
那试试:
office是否安装
没有安装到GAC里面
dcomcnfg 中配置EXCEL权限,everyone
jiejie526 2010-12-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yan267 的回复:]
C# code

Excel.Application xlApp = new Excel.Application();
Excel.Workbook workbook = xlApp.Workbooks.Add(true);
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];……
[/Quote]

很多人都是用这个,可结果都不行。

yan267 2010-12-06
  • 打赏
  • 举报
回复

Excel.Application xlApp = new Excel.Application();
Excel.Workbook workbook = xlApp.Workbooks.Add(true);
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];
Excel.Range range;
range= worksheet.get_Range(xlApp.Cells[1, 4], xlApp.Cells[RowCount + 2, 4]);

jiejie526 2010-12-06
  • 打赏
  • 举报
回复
搜了很多出现这种问题的贴子都没有解决问题

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧