解决C#读取Excel文件出现无法指出的错误

开发 后端
在保存excel文件时总提示对此目录没有操作权限,出现C#读取Excel文件出现无法指出的错误。本文将介绍相关知识。

在根目录的webconfig里加了一句 <identity   impersonate="true"   />   .

做了这样的修改后,生成的文件可以顺利保存了,但读取外部excel文件时总在xlsconn.open()这句出错;
后来将根目录webconfig里的<identity   impersonate="true"   />删除,加到子目录excelfile目录的webconfig里就一切OK了。

public static DataSet ImportXlsToData(string fileName)  
    {  
      try  
        {  
            if (fileName == string.Empty)  
            {  
                throw new ArgumentNullException("上传文件失败!");  
            }  
            //  
            string oleDBConnString = String.Empty;  
            oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;";  
            oleDBConnString += "Data Source=";  
            oleDBConnString += fileName;  
            oleDBConnString += ";Extended Properties=Excel 8.0;";  
            //  
            OleDbConnection oleDBConn = null;  
            OleDbDataAdapter oleAdMaster = null;  
            System.Data.DataTable m_tableName = new System.Data.DataTable();  
            DataSet ds = new DataSet();  
 
            try  
            {  
                oleDBConn = new OleDbConnection(oleDBConnString);  
                oleDBConn.Open();  
                m_tableName = oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);  
 
                if (m_tableName != null && m_tableName.Rows.Count > 0)  
                {  
                    m_tableNamem_tableName.TableName = m_tableName.Rows[0]["TABLE_NAME"].ToString();  
                }  
                string sqlMaster;  
                sqlMaster = " SELECT *  FROM [" + m_tableName.TableName + "]";  
                oleAdMaster = new OleDbDataAdapter(sqlMaster, oleDBConn);  
                oleAdMaster.Fill(ds, "m_tableName");  
                oleAdMaster.Dispose();  
                oleDBConn.Close();  
                oleDBConn.Dispose();  
            }  
            catch (Exception ex)  
            {  
                ErrorLog.AddLog(ex);  
                return null;  
            }  
 
            return ds;  
            //测试是否提取数据  
            //this.Datagrid1.DataSource =ds.Tables["m_tableName"];  
            //this.Datagrid1.DataBind();  
            //将Dataset中数据导入SQL  
            //AddDatasetToSQL(ds);  
 
        }  
        catch (Exception ex)  
        {  
            return null;  
        }  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.

比较简单的做法是根目录的Web.Config文件不加<identity impersonate="true"/>

对有下载文件的页面指定权限:

<location path="forecast/SupplierPlan.aspx"> 
    <system.web> 
      <identity impersonate="true"/> 
    </system.web> 
  </location> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

【编辑推荐】

  1. 简单介绍C#预处理
  2. 学习C#无词尾符号经验谈
  3. C#调用QuickTest自动化
  4. 详解C#正规表达式
  5. C#字符串插入html标签
责任编辑:彭凡 来源: cnblogs
相关推荐

2009-08-13 10:40:15

C#读取Excel

2009-08-13 10:15:50

C#读取Excel

2009-08-07 12:12:00

C#读取Excel文件

2010-08-05 10:05:14

C#枚举值

2009-08-18 16:14:05

C# 操作Excel

2009-08-13 10:27:28

C#读取Excel数据

2013-02-22 09:54:15

C#Excel读取Excel

2009-08-21 16:13:27

C#读取资源文件

2009-08-13 09:32:00

C#读取TXT文件

2009-08-11 14:32:06

C#读取Excel数据

2009-08-07 12:57:03

C#读取Excel

2009-08-11 14:36:41

C#读取Excel

2009-08-12 17:19:09

C#读取文件内容

2009-08-12 18:29:06

C#读取TXT文件

2009-08-12 14:13:51

C#读写Excel文件

2009-09-01 14:39:47

C#创建Excel文件

2009-08-13 09:58:55

C#读取配置文件

2009-08-13 09:16:57

C#读取配置文件

2009-08-24 17:58:19

C#读取XML文件

2009-08-12 17:27:11

C#读取文件
点赞
收藏

51CTO技术栈公众号