private decimal MethodName()
{
decimal amount = 0;
DateTime ExpiryDate;
try
{
if (fuID.HasFile && fuID.PostedFile.ContentLength > 0)
{
string path = fuID.PostedFile.FileName;
if (File.Exists(path))
{
//convert excel to datatable
System.Data.DataTable dt = Common.ImportExcelXLS(path);
if (dt != null)
{
ViewState["Data"] = dt;
foreach (DataRow dr in dt.Rows)
{
//do something
}
}
}
}
}
catch (Exception ex)
{
//throw ex;
}
return amount;
}
public static DataTable ImportExcelXLS(string fileLocation)
{
DataTable dt = new DataTable();
DataTable dt1 = new DataTable();
DataSet ds = new DataSet();
using (OleDbConnection conn = new OleDbConnection())
{
string connectionString = string.Empty;
try
{
renameWorksheet(fileLocation);
if (Path.GetExtension(fileLocation) == ".xlsx")
{
StringBuilder sbConn = new StringBuilder();
sbConn.Append("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=");
sbConn.Append(fileLocation);
sbConn.Append(";Extended Properties='Excel 8.0;IMEX=1'");
connectionString = sbConn.ToString();
//"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileLocation + ";Extended Properties='Excel 8.0;IMEX=1'";
}
else
{
StringBuilder sbConn = new StringBuilder();
sbConn.Append("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=");
sbConn.Append(fileLocation);
sbConn.Append(";Extended Properties='Excel 8.0;IMEX=1'");
connectionString = sbConn.ToString(); //"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileLocation + ";Extended Properties='Excel 8.0;HDR=No;IMEX=1'";
}
conn.ConnectionString = connectionString;
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
DataTable dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string sheetName = GetSheetName(dtSchema);
OleDbCommand cmd = new OleDbCommand("select * from [" + sheetName + "]", conn);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
dt.TableName = sheetName.Replace("$", "").Replace("'", "");
da.Fill(dt);
for (int h = 0; h < dt.Rows.Count; h++)
{
if (dt.Rows[h].IsNull(0) == true)
{
dt.Rows.Remove(dt.Rows[h]);
}
}
}
catch (Exception ex)
{
}
finally
{
conn.Close();
}
return dt;
}
}
public static string GetSheetName(DataTable Dtschema)
{
List<string> sheetName = new List<string>();
for (int i = 0; i < Dtschema.Rows.Count; i++)
{
if (!Dtschema.Rows[i].Field<string>("TABLE_NAME").ToString().Trim().ToUpper().Contains("FILTERDATABASE"))
{
sheetName.Add(Dtschema.Rows[i].Field<string>("TABLE_NAME"));
}
}
return sheetName[0].ToString();
}
install 64bit AccessDataBaseEngine_64x.exe
Download from the following link:
http://www.microsoft.com/en-in/download/details.aspx?id=13255
Installation Steps:
Launching the install of a Microsoft ACE OLEDB Provider on a machine with an Office install other than the current one (e.g. 32 on 64) will cause the install to fail. To have it run properly you need to launch it from a command line with the “/passive” argument specified.
{
decimal amount = 0;
DateTime ExpiryDate;
try
{
if (fuID.HasFile && fuID.PostedFile.ContentLength > 0)
{
string path = fuID.PostedFile.FileName;
if (File.Exists(path))
{
//convert excel to datatable
System.Data.DataTable dt = Common.ImportExcelXLS(path);
if (dt != null)
{
ViewState["Data"] = dt;
foreach (DataRow dr in dt.Rows)
{
//do something
}
}
}
}
}
catch (Exception ex)
{
//throw ex;
}
return amount;
}
public static DataTable ImportExcelXLS(string fileLocation)
{
DataTable dt = new DataTable();
DataTable dt1 = new DataTable();
DataSet ds = new DataSet();
using (OleDbConnection conn = new OleDbConnection())
{
string connectionString = string.Empty;
try
{
renameWorksheet(fileLocation);
if (Path.GetExtension(fileLocation) == ".xlsx")
{
StringBuilder sbConn = new StringBuilder();
sbConn.Append("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=");
sbConn.Append(fileLocation);
sbConn.Append(";Extended Properties='Excel 8.0;IMEX=1'");
connectionString = sbConn.ToString();
//"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileLocation + ";Extended Properties='Excel 8.0;IMEX=1'";
}
else
{
StringBuilder sbConn = new StringBuilder();
sbConn.Append("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=");
sbConn.Append(fileLocation);
sbConn.Append(";Extended Properties='Excel 8.0;IMEX=1'");
connectionString = sbConn.ToString(); //"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileLocation + ";Extended Properties='Excel 8.0;HDR=No;IMEX=1'";
}
conn.ConnectionString = connectionString;
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
DataTable dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string sheetName = GetSheetName(dtSchema);
OleDbCommand cmd = new OleDbCommand("select * from [" + sheetName + "]", conn);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
dt.TableName = sheetName.Replace("$", "").Replace("'", "");
da.Fill(dt);
for (int h = 0; h < dt.Rows.Count; h++)
{
if (dt.Rows[h].IsNull(0) == true)
{
dt.Rows.Remove(dt.Rows[h]);
}
}
}
catch (Exception ex)
{
}
finally
{
conn.Close();
}
return dt;
}
}
public static string GetSheetName(DataTable Dtschema)
{
List<string> sheetName = new List<string>();
for (int i = 0; i < Dtschema.Rows.Count; i++)
{
if (!Dtschema.Rows[i].Field<string>("TABLE_NAME").ToString().Trim().ToUpper().Contains("FILTERDATABASE"))
{
sheetName.Add(Dtschema.Rows[i].Field<string>("TABLE_NAME"));
}
}
return sheetName[0].ToString();
}
install 64bit AccessDataBaseEngine_64x.exe
Download from the following link:
http://www.microsoft.com/en-in/download/details.aspx?id=13255
Installation Steps:
Launching the install of a Microsoft ACE OLEDB Provider on a machine with an Office install other than the current one (e.g. 32 on 64) will cause the install to fail. To have it run properly you need to launch it from a command line with the “/passive” argument specified.
- To install the Microsoft ACE OLEDB Provider 32-bit on a machine running Office 2010 64-bit:
- To install the Microsoft ACE OLEDB Provider 64-bit on a machine running Office 2010 32-bit:
No comments:
Post a Comment