使用asp.net读取excel的sheet表名

.Net技术 码拜 7年前 (2015-11-16) 854次浏览
如题,本人在网上找了好多. 例如.
public static String getExcelSheets(string fileName) {
OleDbConnection objConn = new OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + fileName + “;Extended Properties=”Excel 8.0;imex=1;hdr=no”;”);
objConn.Open();
System.Data.DataTable dt = null;
dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
String[] excelSheets = new String[dt.Rows.Count];
int i = 0;
String result = “”;
foreach (DataRow row in dt.Rows){
result = row[“TABLE_NAME”].ToString();
i++;
}
if (objConn != null) { objConn.Close(); objConn.Dispose(); }
if (dt != null) { dt.Dispose(); }
return result;
/*OleDbConnection oleconn = new OleDbConnection(“provider=Microsoft.Jet.OLEDB.4.0;data source=” + fileName + “;Extended Properties=Excel 8.0;Persist Security Info=False”);
oleconn.Open();
//返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等
DataTable dtSheetName = oleconn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, “Table” });
//包含excel中表名的字符串数组
string[] strTableNames = new string[dtSheetName.Rows.Count];
for (int k = 0; k < dtSheetName.Rows.Count; k++){
strTableNames[k] = dtSheetName.Rows[k][“TABLE_NAME”].ToString();
}
return strTableNames; */
}
运行的时候无论用哪一个连接字符串都是报这个错.
“System.ArgumentException”类型的异常在 System.Data.dll 中发生,但未在用户代码中进行处理
其他信息: 从索引 47 处开始,初始化字符串的格式不符合规范。
求指导.
解决方案:10分
换用NPOI吧,一半的代码都够了
解决方案:5分
Excel2000-2003:
OleDbConnection ExcelConn = new OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0; Data Source=” + FilePath + “; Extended Properties=””Excel 12.0;HDR=YES;IMEX=1″””);
Excel2007:
OleDbConnection ExcelConn = new OleDbConnection(“Provider=Microsoft.ACE.OLEDB.12.0; Data Source=” + FilePath + “; Extended Properties=””Excel 12.0 Xml;HDR=YES;IMEX=1″””);
解决方案:5分
你有引用Microsoft.ACE.OLEDB.12.0吗
解决方案:10分
请用Aspose.Cell或NPIO
解决方案:10分
本人错了,不需要引用,你把完整的链接字符串发出来看下,包括文件名在内的

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明使用asp.net读取excel的sheet表名
喜欢 (0)
[1034331897@qq.com]
分享 (0)