.xslx ошибка импорта на 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
IN-сервер (GoDaddy веб-сервер) ...xslx ошибка импортируйте Microsoft.ACE.OLEDB.12.0 'в ASP .NET
есть много блога, говоря, чтобы установить программное обеспечение .. 2010 и 2007 oledb connection software .. моя система - это 32-битная архитектура (x86) и архитектура 64-битной архитектуры. Я пробовал почти 2 дня, проблема в том, что в localhost оба .xls и .xlsx работают нормально. Но пока я использую сервер, есть проблема только в файлах .xlsx. , так что dll нужно надеть бен папка сервера, так что я могу решить эту проблему в сервере ..
Вот код:
if (flexcel.HasFile)
{
name = rnd.Next(111, 9999).ToString() + "_" + System.IO.Path.GetFileName(flexcel.FileName);
string fileExtension = System.IO.Path.GetExtension(flexcel.FileName);
if (fileExtension == ".xls" || fileExtension == ".xlsx")
{
string fileLocation = Server.MapPath("../Content/MailMarketing/") + name;
if (System.IO.File.Exists(fileLocation))
{
// System.IO.File.Delete(fileLocation);
}
flexcel.SaveAs(fileLocation);
string excelConnectionString = string.Empty;
//excelConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
//Server.MapPath("~/Content/MailMarketing/") + flexcel.FileName + month + ";Extended Properties=\"Excel 12.0;\"";
////connection String for xls file format.
if (fileExtension == ".xls")
{
excelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
fileLocation + ";Extended Properties=\"Excel 8.0;\"";
}
//connection String for xlsx file format.
else
//if (fileExtension == ".xlsx")
{
excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
Server.MapPath("../Content/MailMarketing/" + name) + ";Extended Properties=Excel 12.0;";
}
//Create Connection to Excel work book and add oledb namespace
OleDbConnection excelConnection = new OleDbConnection(excelConnectionString);
excelConnection.Open();
DataTable dt = new DataTable();
dt = excelConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
if (dt == null)
{
return;
}
String[] excelSheets = new String[dt.Rows.Count];
int t = 0;
//excel data saves in temp file here.
foreach (DataRow row in dt.Rows)
{
string x = row["TABLE_NAME"].ToString();
if (x != "Sheet1$_" && x != "Sheet2$_" && x != "Sheet3$_" && x != "Sheet4$_" && x != "Sheet5$_")
{
excelSheets[t] = row["TABLE_NAME"].ToString();
t++;
}
}
OleDbConnection excelConnection1 = new OleDbConnection(excelConnectionString);
int totalsheet = excelSheets.Length;
for (int i = 0; i < totalsheet; i++)
{
string query = string.Format("Select * from [{0}]", excelSheets[i]);
using (OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, excelConnection1))
{
dataAdapter.Fill(ds);
}
}
}
if (fileExtension.ToString().ToLower().Equals(".xml"))
{
string fileLocation = Server.MapPath("~/Content/") + Request.Files["FileUpload"].FileName;
if (System.IO.File.Exists(fileLocation))
{
System.IO.File.Delete(fileLocation);
}
Request.Files["FileUpload"].SaveAs(fileLocation);
XmlTextReader xmlreader = new XmlTextReader(fileLocation);
// DataSet ds = new DataSet();
ds.ReadXml(xmlreader);
xmlreader.Close();
}
Любые предложения ??
Без установки программного обеспечения кто-нибудь может предложить мне, какой тип DLL-файлов нужно поместить в папку bin?