首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

[馨郁星愿] .net 操作Excel的有关问题

2011-12-31 
[馨郁星愿] .net 操作Excel的问题!System.Data.OleDb.OleDbException:MicrosoftJet数据库引擎打不开文件。

[馨郁星愿] .net 操作Excel的问题!
System.Data.OleDb.OleDbException:   Microsoft   Jet   数据库引擎打不开文件 ' '。   它已经被别的用户以独占方式打开,或没有查看数据的权限。   at   System.Data.OleDb.OleDbConnection.ProcessResults(Int32   hr)   at   System.Data.OleDb.OleDbConnection.InitializeProvider()   at   System.Data.OleDb.OleDbConnection.Open()   at   BJWeb.Mass.ExcelToString()

很奇怪的问题,本地机器测试通过,而到服务器上利用服务器上的浏览器执行程序也通过,但是我用我本地机器访问服务器,执行的时候就报错了~~~
这是为何?很不理解,请大家帮忙~~~附上代码:

  Public   Function   ExcelToString()   As   String
                Dim   imagePath   As   String     '文件路径
                Dim   imageType   As   String   '文件类型
                If   Not   FileUp.PostedFile.FileName   Is   Nothing   Then
                        imagePath   =   FileUp.PostedFile.FileName
                        '取得文件类型
                        imageType   =   imagePath.Substring((imagePath.LastIndexOf( ". ")   +   1))
                        If   "xls "   <>   imageType   Then
                                Response.Write( " <script   language= 'javascript '>   alert( '对不起!请您选择Excel文件! '); </script> ")
                                Return   " "
                        Else
                                Try
                                        Dim   strConn   As   String   =   "Provider=Microsoft.Jet.OLEDB.4.0; "   +   "Data   Source= "   +   imagePath   +   "; "   +   "Extended   Properties=Excel   8.0; "
                                        Dim   conn   As   OleDbConnection   =   New   OleDbConnection(strConn)
                                        conn.Open()
                                        Dim   i   As   Integer
                                        Dim   sb   As   New   System.Text.StringBuilder
                                        Dim   nRecCount   As   Integer
                                        Dim   MyDataTable   As   DataTable   '创建MyDataTable对象


                                        Dim   strExcel   As   String   =   "select   *   from   [sheet1$] "
                                        Dim   myCommand   As   OleDbDataAdapter   =   Nothing
                                        Dim   ds   As   DataSet   =   Nothing
                                        myCommand   =   New   OleDbDataAdapter(strExcel,   strConn)
                                        ds   =   New   DataSet
                                        myCommand.Fill(ds,   "table1 ")
                                        conn.Close()
                                        MyDataTable   =   ds.Tables(0)
                                        nRecCount   =   MyDataTable.Rows.Count()
                                        For   i   =   0   To   nRecCount   -   1
                                                sb.Append( " "   &   MyDataTable.Rows(i)(0)   &   "| ")
                                        Next
                                        Return   sb.ToString()
                                Catch   ex   As   Exception
                                        Current.Response.Write(ex.ToString())
                                Finally
                                End   Try
                        End   If
                End   If
        End   Function

Mass.aspx页面上有上面这个函数,并且有一按纽与一个input控件,点击按妞后执行上面那段程序:
Private   Sub   Button1_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   Button1.Click


                '导入手机号
                Mobile.Text   =   ExcelToString()
        End   Sub

为什么会出现这样的错误?出现这样错误的解决方案呢?哪个遇到过,请指点一下

[解决办法]
这应该是你的access数据库库处于设计状态。
[解决办法]
把EXCEL的文件设成Everyone完全控制
[解决办法]
Extended Properties= " "Excel 8.0;HDR=Yes;IMEX=1 " "
[解决办法]
看别人是不是打开了那个文件。
[解决办法]
本地机器访问服务器,执行的时候就报错应该属于权限问题.....

[解决办法]
是权限问题,把你的excel的权限改为完全控制就行了

[解决办法]
试一下配置dcom
[解决办法]
excel所在文件夹加了asp.net iis_wpg,usr_机器名(匿名访问那个用户),加完全控制了吗.或者every加完全控制试试.看是不是权限的问题.

热点排行