win7下C#读取Excel2007,总是报错: 检索 COM 类工厂中 CLSID 为 00024500-0000-0000-C000-000000000046

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了win7下C#读取Excel2007,总是报错: 检索 COM 类工厂中 CLSID 为 00024500-0000-0000-C000-000000000046相关的知识,希望对你有一定的参考价值。

权限导致的问题,如果你能做主的话,那么在
webconfig中加入以下标记
<identity impersonate="true" userName="??" password="???" />模拟管理员登陆应该就好了
参考技术A 参考技术B 说的是那个webconfig?

c#读取过来的excel路径不对

代码是这样的,就是读取出来的路径一直是有个报错的C盘的路径,我把东西调到那里就执行成功了,其他路径下都不行
string connStr = "";
string fileType = System.IO.Path.GetExtension(filename);
if (string.IsNullOrEmpty(fileType)) return null;
if (fileType == ".xls")
connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filename + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
else
connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filename + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";
string sql_F = "Select * FROM [Sheet1$]";
OleDbConnection conn = null;
OleDbDataAdapter da = null;
System.Data.DataTable dtSheetName = null;
System.Data.DataTable dt = new System.Data.DataTable();
try

// 初始化连接,并打开
conn = new OleDbConnection(connStr);
conn.Open();
// 获取数据源的表定义元数据
string SheetName = "";
dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] null, null, null, "TABLE" );
// 初始化适配器
da = new OleDbDataAdapter();
for (int i = 0; i < dtSheetName.Rows.Count; i++)

SheetName = (string)dtSheetName.Rows[i]["TABLE_NAME"];
if (SheetName.Contains("$") && !SheetName.Replace("'", "").EndsWith("$"))

continue;

da.SelectCommand = new OleDbCommand(String.Format(sql_F, SheetName), conn);
da.Fill(dt);


catch (Exception ex)


finally

// 关闭连接
if (conn.State == ConnectionState.Open)

conn.Close();
da.Dispose();
conn.Dispose();


return dt;

参考技术A 请问你的 filename 传的是什么? 如果给了一个相对路径要用 Server.MapPath(filename)来获取绝对路径的 参考技术B 路径某个地方写死了 参考技术C 这东西很简单,引用office的excel的dll
然后打开这个excel文件,就跟读取一个二维表一样容易。具体代码就不写了
百度一搜一大堆。
参考技术D 你用绝对路径或者知道fileupload试一下

以上是关于win7下C#读取Excel2007,总是报错: 检索 COM 类工厂中 CLSID 为 00024500-0000-0000-C000-000000000046的主要内容,如果未能解决你的问题,请参考以下文章

Java中poi读取含有失效超链接的Excel2007报错

如何在 C# 中将文件导出到 excel 2007+

excel VBA(32位)在win7 64位上运行错误

C#在win7系统 iis部署asp.net导出excel功能报错

c#读取过来的excel路径不对

C#调用OleDbConnection类读取Excel表格时,报错外部组件发生异常!