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

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

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

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

  1. public static DataSet ImportXlsToData(string fileName)  
  2.     {  
  3.       try  
  4.         {  
  5.             if (fileName == string.Empty)  
  6.             {  
  7.                 throw new ArgumentNullException("上传文件失败!");  
  8.             }  
  9.             //  
  10.             string oleDBConnString = String.Empty;  
  11.             oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;";  
  12.             oleDBConnString += "Data Source=";  
  13.             oleDBConnString += fileName;  
  14.             oleDBConnString += ";Extended Properties=Excel 8.0;";  
  15.             //  
  16.             OleDbConnection oleDBConn = null;  
  17.             OleDbDataAdapter oleAdMaster = null;  
  18.             System.Data.DataTable m_tableName = new System.Data.DataTable();  
  19.             DataSet ds = new DataSet();  
  20.  
  21.             try  
  22.             {  
  23.                 oleDBConn = new OleDbConnection(oleDBConnString);  
  24.                 oleDBConn.Open();  
  25.                 m_tableName = oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);  
  26.  
  27.                 if (m_tableName != null && m_tableName.Rows.Count > 0)  
  28.                 {  
  29.                     m_tableNamem_tableName.TableName = m_tableName.Rows[0]["TABLE_NAME"].ToString();  
  30.                 }  
  31.                 string sqlMaster;  
  32.                 sqlMaster = " SELECT *  FROM [" + m_tableName.TableName + "]";  
  33.                 oleAdMaster = new OleDbDataAdapter(sqlMaster, oleDBConn);  
  34.                 oleAdMaster.Fill(ds, "m_tableName");  
  35.                 oleAdMaster.Dispose();  
  36.                 oleDBConn.Close();  
  37.                 oleDBConn.Dispose();  
  38.             }  
  39.             catch (Exception ex)  
  40.             {  
  41.                 ErrorLog.AddLog(ex);  
  42.                 return null;  
  43.             }  
  44.  
  45.             return ds;  
  46.             //测试是否提取数据  
  47.             //this.Datagrid1.DataSource =ds.Tables["m_tableName"];  
  48.             //this.Datagrid1.DataBind();  
  49.             //将Dataset中数据导入SQL  
  50.             //AddDatasetToSQL(ds);  
  51.  
  52.         }  
  53.         catch (Exception ex)  
  54.         {  
  55.             return null;  
  56.         }  

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

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

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

【编辑推荐】

  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-13 10:27:28

C#读取Excel数据

2009-08-18 16:14:05

C# 操作Excel

2013-02-22 09:54:15

C#Excel读取Excel

2009-08-07 12:57:03

C#读取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-11 14:36:41

C#读取Excel

2009-08-12 18:29:06

C#读取TXT文件

2009-08-12 17:19:09

C#读取文件内容

2009-09-01 14:39:47

C#创建Excel文件

2009-08-12 14:13:51

C#读写Excel文件

2009-08-24 17:58:19

C#读取XML文件

2009-08-12 17:27:11

C#读取文件

2009-09-01 11:25:08

C#读取Word文件

2009-08-13 09:58:55

C#读取配置文件
点赞
收藏

51CTO技术栈公众号