用COM 组件在SERVER上生成EXCEL的问题

slhuang 2006-03-15 03:35:58
Microsoft Excel 不能访问文件“C:\Inetpub\wwwroot\TestApp”。 可能原因有: * 指定的文档名称或路径不存在。 * 所要打开的文档被其他程序占用。切换到相应程序,关闭文档后再试。 * 所要保存的工作簿的名称与另一个只读文档同名。请用其他名称保存文档。


在保存的时候,报如上的错误。
保存的文件名我查了下,是完整的C:\Inetpub\wwwroot\TestApp\1.xls
目录也已经加了ASPNET写权限。

请各位路过的知道的都给说几句吧。被郁闷了。……
代码很简单,就是不知道怎么会这样。
...全文
189 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
slhuang 2006-03-17
  • 打赏
  • 举报
回复
或许我说得不够明白,楼上的几位都没弄明白我的意思。
我自己搞解决了。
配置DCOMCNFG,然后把WEB.CONFIG里那个什么 <identity impersonate="true"/> 去掉。(写了这个就会有那个错误。
夜雨悠扬 2006-03-16
  • 打赏
  • 举报
回复
我写个例子给你看看吧
superljy 2006-03-16
  • 打赏
  • 举报
回复
Microsoft Excel 不能访问文件“C:\Inetpub\wwwroot\TestApp”。

C:\Inetpub\wwwroot\TestApp是个目录,如何访问?????
slhuang 2006-03-16
  • 打赏
  • 举报
回复
zhouxiaotan
我能保存到,我就没必要那么烦了。就是因为保存不了。
我NEW一个EXCELAPPLICATION,什么也不干,就直接保存(文件路径和文件名都有,文件夹也设置了权限)。就是那个错误了。哪里来的文件被占用?
夜雨悠扬 2006-03-16
  • 打赏
  • 举报
回复
添加Microsoft Office的引用和Excel的引用
注意版本问题,应该相同
这个属于Com的引用
jdhsd 2006-03-16
  • 打赏
  • 举报
回复
我使用
Imports Microsoft.Office.Core
Imports Microsoft.Office.Interop
这两句的时候出现了包错
请问我先要添加什么引用啊?
夜雨悠扬 2006-03-16
  • 打赏
  • 举报
回复
Imports Microsoft.Office.Core
Imports Microsoft.Office.Interop
Public Class Form1
Inherits System.Windows.Forms.Form

#Region " Windows 窗体设计器生成的代码 "

Public Sub New()
MyBase.New()

'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()

'在 InitializeComponent() 调用之后添加任何初始化

End Sub

'窗体重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer

'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents Button1 As System.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.Button1 = New System.Windows.Forms.Button
Me.SuspendLayout()
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(312, 112)
Me.Button1.Name = "Button1"
Me.Button1.TabIndex = 0
Me.Button1.Text = "Button1"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(560, 446)
Me.Controls.Add(Me.Button1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)

End Sub

#End Region

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As New Excel.Application
a.Workbooks.Add()
a.SaveWorkspace("c:\abcd.xls")
End Sub
End Class
这个我测试是好用的
夜雨悠扬 2006-03-15
  • 打赏
  • 举报
回复
我说的就是这个意思,先把文件保存在其他的地方,然后再移动到你想要的目录中
slhuang 2006-03-15
  • 打赏
  • 举报
回复
1.xls是我自己新建立的。也就是在ExcelApplication保存的时候的,那个文件名。
夜雨悠扬 2006-03-15
  • 打赏
  • 举报
回复
原因是1.Xls文件被占用了。
就是你自己的程序在占用着。
把文件弄到temp下面然后再打开或者是保存试一下

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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