通过C#调用EXCEL对象

wzhlrm 2005-08-05 08:56:39
我用vs.net做了一个返回Excel对象的控件,就一句话(Excel.Application excel= new Excel.Application();),通过
<object id="ec" classid="http:excelcontrol.dll#control.Excel" Width="40" Height="60" VIEWASTEXT></object>方法在web页面里调用,不知为何在有的机器能够执行成功,而有的机器却触发异常,异常信息为:"System.Security.Permissions.SecurityPermission"。
请不吝赐教,谢谢!
...全文
584 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
awuzi 2005-12-10
  • 打赏
  • 举报
回复
我直接把Excel写到客户端
Private Sub openExcel(ByVal fName As String)
Dim fs As FileStream
Dim maxlen As Integer = 1

Response.Clear()
Response.Buffer = True
fs = New FileStream(fName, FileMode.Open)
maxlen = fs.Length
Dim arr(maxlen) As Byte
fs.Read(arr, 0, fs.Length)
fs.Close()
'---------------------------------------
Response.AddHeader("Content-Disposition", "attachment;filename=book2.xls")
Response.ContentType = "application/ms-excel"
Me.EnableViewState = False
Response.Charset = "gb2312"
Response.ContentEncoding = System.Text.Encoding.UTF8
Response.BinaryWrite(arr)
Response.End()
End Sub
li_guoyong 2005-11-15
  • 打赏
  • 举报
回复
拒绝访问。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.UnauthorizedAccessException: 拒绝访问。

ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。

若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

源错误:


行 26:
行 27:
行 28: Excel._Application m_objExcel=new Excel.ApplicationClass();
行 29: Excel.Workbook m_objBooks=new Excel.WorkbookClass();
行 30: Excel.Worksheet m_objSheet=new Excel.WorksheetClass();
我也遇到此类问题,如何解决

wzhlrm 2005-08-05
  • 打赏
  • 举报
回复
大部分机器只要装有office2000都能运行,只是单位有两台机器前几天还可以运行,昨天突然不能运行了,并且出现如上提示!
silverseven7 2005-08-05
  • 打赏
  • 举报
回复
hh
jinger007 2005-08-05
  • 打赏
  • 举报
回复
权限的问题,你说得有的机器不能运行的是不是指别的机器?能运行得是本地?
李天平 2005-08-05
  • 打赏
  • 举报
回复
未授权此 ASP.NET 进程访问所请求的资源。出于安全原因,默认的 ASP.NET 进程标识为“{machinename}\ASPNET”,它只具有有限的特权。请考虑授予该 ASP.NET 进程标识访问此资源的权限。

若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”以添加“{machinename}\ASPNET”用户。突出显示此 ASP.NET 帐户,在“允许”列中选中“写”框。
wzhlrm 2005-08-05
  • 打赏
  • 举报
回复
客户就是上帝,这是客户的要求
xzhy80 2005-08-05
  • 打赏
  • 举报
回复
up
TechEye 2005-08-05
  • 打赏
  • 举报
回复
最用的方法是用ADO直接导出数据,客户机上不一定要安装excel

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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