Asp.Net(c#)-阅读Excel表格
我需要从Excel电子表格中导入一些内容,并且一直在网上查看各种示例,它们似乎都使用与64位不兼容的“Jet”驱动程序Asp.Net(c#)-阅读Excel表格,c#,asp.net,excel,C#,Asp.net,Excel,我需要从Excel电子表格中导入一些内容,并且一直在网上查看各种示例,它们似乎都使用与64位不兼容的“Jet”驱动程序 现在我完全了解了可用的解决方法(在更改IIS运行方式等方面),但是我想知道是否有“Jet”驱动程序的替代品,这样我就可以从64位服务器上运行的Asp.Net中读取和生成excel工作表,而无需对IIS进行任何修改。上次我研究时,没有x64驱动程序。我用它来打开xls文件。只要您使用x86编译,它就可以在64位框上工作 DataSet myDataset = new DataS
现在我完全了解了可用的解决方法(在更改IIS运行方式等方面),但是我想知道是否有“Jet”驱动程序的替代品,这样我就可以从64位服务器上运行的Asp.Net中读取和生成excel工作表,而无需对IIS进行任何修改。上次我研究时,没有x64驱动程序。我用它来打开xls文件。只要您使用x86编译,它就可以在64位框上工作
DataSet myDataset = new DataSet();
string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + @";Extended Properties=""Excel 12.0 Xml;HDR=YES""";
OleDbConnection myData = new OleDbConnection(strConn);
try {
myData.Open();
}
catch (OleDbException e) {
try {
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filename + ";" + "Extended Properties=Excel 8.0;HDR=YES;";
myData = new OleDbConnection(strConn);
myData.Open();
}
catch (Exception e2) {
strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + @";Extended Properties=""HTML Import;HDR=YES;IMEX=1"";";
myData = new OleDbConnection(strConn);
myData.Open();
}
}
int i = 0;
foreach (DataRow row in myData.GetSchema("tables").Rows)
try {
i++;
string name = row[2].ToString().Replace("''", "'").TrimEnd('_');
DataSet ds = new DataSet();
OleDbDataAdapter d = new OleDbDataAdapter("SELECT * from [" + name + "]", strConn);
d.Fill(ds);
DataTable dt = ds.Tables[0].Copy();
dt.Namespace = name;
myDataset.Tables.Add(dt);
}
catch (Exception e) {
}
return myDataset;
你有没有想过试一试呢? 我自己在带有IIS 6.0的64位服务器上使用它
虽然不是最容易使用的,但它运行良好(快速、可靠,不需要在服务器上安装office等)。如果这是一个网站,但未编译?网站仍在编译中。此代码将在您的asp.net应用程序中运行。我理解这一点。告诉你什么会让它旋转,然后带着问题回来。当我导出文件和我上传的同一个文件时,只要我做了一些更改并保存这些更改,然后再次尝试导入,那么代码就不起作用了。foreach找不到表时出错