我有一個要求,從Excel電子表格中進行一些導入,並且一直在網上查看各種示例,它們似乎都使用「Jet」驅動程序,它不是兼容64Bit。Asp.Net(c#) - 閱讀Excel表
現在我完全瞭解可用的解決方法(更改IIS運行方式等),但是我想知道是否有替代「Jet」驅動程序,以便我可以從Asp.Net中讀取和生成Excel表單在沒有IIS修改的64位服務器上。
我有一個要求,從Excel電子表格中進行一些導入,並且一直在網上查看各種示例,它們似乎都使用「Jet」驅動程序,它不是兼容64Bit。Asp.Net(c#) - 閱讀Excel表
現在我完全瞭解可用的解決方法(更改IIS運行方式等),但是我想知道是否有替代「Jet」驅動程序,以便我可以從Asp.Net中讀取和生成Excel表單在沒有IIS修改的64位服務器上。
上次我研究的不是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;
你有沒有想過給Open XML SDK一個試試嗎?
我用它自己與IIS 6.0 64位服務器上不是一個最容易使用,但它工作正常(快速,可靠,無需安裝在服務器上寫字樓等)。
如果這是一個網站,並沒有編譯? – LiamB 2010-03-24 12:23:43
網站仍在編譯。此代碼將在您的asp.net應用程序中工作。 – Dested 2010-03-24 12:33:16
我明白這一點。告訴你什麼會給它一個旋轉和回來的問題。 – LiamB 2010-03-24 12:34:20