搞不懂的问题,班主来看看呀,高手来帮忙

conanbos 2002-07-04 09:56:54
我想打开一个excel的程序,在客户端,程序是这样写的(照以前贴子抄的)
Excel.Application oExcel;
Excel.Workbook oBook;
Object oMissing= System.Reflection.Missing.Value;
oExcel = new Excel.Application();
oBook = oExcel.Workbooks.Add(oMissing);
for (int i=1;i<=4;i++)
{
oExcel.Cells[i,1]=i.ToString();
oExcel.Cells[i,2]="'bbb2";
oExcel.Cells[i,3]="'ccc3";
oExcel.Cells[i,4]="'aaa4";
}
oExcel.Visible =true;

可是在运行到oExcel=new Excel.Application();时就报错了,但是在服务端的进程中已经有一个excel的进程在运行了,这是为什么,我已经把excel9的库引用进来了。

第二个问题,在执行oexce.visible=true后,会在客户端出现excel的窗口吗,如果不是,那怎么样在客户端能出现一个excel的窗口,把我要的数据传进去


急呀,先谢谢给我回答的高手了
...全文
37 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
ketao_78 2002-07-08
  • 打赏
  • 举报
回复
to hgknight(江雨)
excel 都不懂了
ketao_78 2002-07-08
  • 打赏
  • 举报
回复
to hgknight(江雨)
excel 都不懂了
ketao_78 2002-07-08
  • 打赏
  • 举报
回复
将datagrid的值一项一项的填入excel中,怎么做
zhaixd 2002-07-04
  • 打赏
  • 举报
回复
conanbos(特兰克斯)
.....这个问题我已经从江雨处得到答案.........

请问你是如何使用他的代码的??你通过http协议访问仍然能够在客户端打开
excel吗???
我试了好多次了,都不成功的
icyer 2002-07-04
  • 打赏
  • 举报
回复
在服务器端加入:
Response.Write("<script language=JavaScript>var s; s='your message.';</script>");
然后在HTML的脚本中,使用s这个变量。

还要一个方法是把这一段脚本由服务器端用Response.Write或者Page.RegisterStartupScript来输出。

try it.
conanbos 2002-07-04
  • 打赏
  • 举报
回复
<script language="vbscript">
option explicit
Dim xlApp,xlBook,XlSheet

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set XlSheet = xlBook.Worksheets(1)

xlApp.Visible=true

XlSheet.Cells(1,1).Value = "test"

Set xlApp = Nothing
Set xlBook = Nothing
Set XlSheet = Nothing
</script>


这段程序中的XlSheet.Cells(1,1).Value = "test",我要把test做参数怎么传进来
vazi 2002-07-04
  • 打赏
  • 举报
回复
采用服务器端生成客户端代码的方法,可以动态生成客户端代码,也就可以向客户端传递参数。
例如:
response.write("<Script>alert('" + ServerVar + "');</script>");
此处ServerVar是服务器端的变量
conanbos 2002-07-04
  • 打赏
  • 举报
回复
这么做我早就搞出来了:)就是不能再做ActiveControl了,我们这个项目已经有好多控件了,这个问题我已经从江雨处得到答案,只是还有一些小问题没有解决,就是参数传递的问题
zhaixd 2002-07-04
  • 打赏
  • 举报
回复
icyer说的对,可以把excel等嵌套在ie中打开,但是不能直接从ie中打开客户端的可执行文件,当然按照 hgknight(江雨) 那种做法,如果打开的是本地的htm或者html等文件的话,是可以打开*.exe文件的,但是如果把这些htm或者html等文件放在服务器端通过http协议访问以后,则不在能打开客户端的exe文件。

解决方法:具体我只能提供思路
做一个客户端的ActiveX控件,在该控件内部调用shell API的Execute或者ExecuteEx等函数来打开一个可执行文件并提供函数供外部使用,在页面中通过一种脚本语言创建该ActiveX控件对象就可以实现打开任何客户端可执行文件的功能了

不过,这种方法需要用户下在该控件并在客户端注册该控件才可以实现,不是很完美,我摸索了好多天才实现了这个功能的

你可以到www.dbstep.com上面去看他的IExecute产品,不过是要卖钱的,
但它的实现原理和我上面说的是一样的
conanbos 2002-07-04
  • 打赏
  • 举报
回复
噢,非常谢谢你,再问一下,如果我要传一些参数进去,参数在C#的代码中获得,那如果传给script呢?
hgknight 2002-07-04
  • 打赏
  • 举报
回复
要在客户端打开excel,只能用script
conanbos 2002-07-04
  • 打赏
  • 举报
回复
to 江雨

有没有在C#中的代码,你这是script呀
conanbos 2002-07-04
  • 打赏
  • 举报
回复
“可以在IE里面调用Excel,但是不能另外打开一个Excel窗口。”

怎么样才能做到呢,有没有代码,贴上来看看,谢谢

icyer 2002-07-04
  • 打赏
  • 举报
回复
在服务器端的代码,当然是显示在服务器端了(如果能显示的话)。
一般来说,可以在IE里面调用Excel,但是不能另外打开一个Excel窗口。
hgknight 2002-07-04
  • 打赏
  • 举报
回复
正常情况,如果客户端装有excel的话,oExcel.Visible =true;就会在客户端打开excel并传入数据
小例子供你参考
<script language="vbscript">
option explicit
Dim xlApp,xlBook,XlSheet

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set XlSheet = xlBook.Worksheets(1)

xlApp.Visible=true

XlSheet.Cells(1,1).Value = "test"

Set xlApp = Nothing
Set xlBook = Nothing
Set XlSheet = Nothing
</script>
记得在项目里先添加Excel引用
conanbos 2002-07-04
  • 打赏
  • 举报
回复
问题成功解决,现在给分
还有,如果要把那段script写成函数,在c#中我是这样调用的
Button1.Attributes["onClick"] = "vbscript:return test()";
conanbos 2002-07-04
  • 打赏
  • 举报
回复
to zhaixd()

我这是可以的,如果你不行,可能有两个原因,第一你没有把excel引入,第二可能是像江渔讲的一样,安全 性的问题
hgknight 2002-07-04
  • 打赏
  • 举报
回复
可以打开,不过客户端浏览器的安全性得调低
关于参数我是通过从服务器端传递一个数组到客户端,再填充excel的

62,249

社区成员

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

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

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

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