Step of reading data from excel sheet and insert into database.
Step 1:
Open .Net and Select New Project=> and Select SharePoint 2010=>Visual
Web Part.
Step 2:
Open the .cs file and put this code.
This code is for generate Xml for insert in
databse:-
private string
GetXMLFromExcel(System.Web.HttpPostedFile
file)
{
string
savePath = string.Empty;
string
xmlData = string.Empty;
string
dirPath = string.Empty;
dirPath =
Path.Combine(Request.PhysicalApplicationPath,
"BAUBUG");
savePath =
Path.Combine(dirPath, file.FileName);
if (!Directory.Exists(dirPath))
{
Directory.CreateDirectory(dirPath);
}
FUExcelSheet.PostedFile.SaveAs(savePath);
xmlData = ReadDataFromExcel(savePath,
file.FileName);
System.IO.File.Delete(savePath);
return
xmlData;
}
This code return xml String code of Excel:-
public string
ReadDataFromExcel(string filePath,
string fileName)
{
DataSet dataSet =
null;
OleDbConnection oledbConn =
null;
OleDbCommand command =
null;
OleDbDataAdapter dataAdapter =
null;
string strConnectionString =
null;
try
{
strConnectionString =
ExcelProvider(fileName).ToString() + "Data Source="
+ filePath + ExtendedProperties(fileName);
oledbConn = new
OleDbConnection(strConnectionString);
// Opens OleDb Connection
oledbConn.Open();
string excelSheetName =
oledbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
null)
.Rows[0]["TABLE_NAME"].ToString().Replace("'",
"");
// Create OleDbCommand object and select data from worksheet
Sheet1
command = new
OleDbCommand("SELECT
* FROM [" + excelSheetName + "]",
oledbConn);
// Create new OleDbDataAdapter
dataAdapter = new
OleDbDataAdapter(command);
// Create a DataSet which will hold the data extracted from the
worksheet.
dataSet = new
DataSet("Root");
// Fill the DataSet from the data extracted from the worksheet.
dataAdapter.Fill(dataSet, "Detail");
//foreach (DataRow dr in dataSet.Tables[0].Rows)
//{
// string path = dr[13].ToString();
// dataSet.Tables[0].AcceptChanges();
//}
}
catch (Exception)
{
// Throws the exception
throw;
}
finally
{
oledbConn.Close();
command.Dispose();
dataAdapter.Dispose();
}
//return the value
return dataSet.GetXml();
}
/// <summary>
/// Excel
provider
/// </summary>
/// <param name="FileName"></param>
/// <returns></returns>
private string
ExcelProvider(string FileName)
{
if (null
!= IsOpenXMLFormat(FileName))
{
if (Convert.ToBoolean(IsOpenXMLFormat(FileName)))
{
return
"Provider=Microsoft.ACE.OLEDB.12.0;";
}
else
{
return
"Provider=Microsoft.Jet.OLEDB.4.0;";
}
}
else
{
return
null;
}
}
/// <summary>
///
/// </summary>
/// <param name="FileName">Check
Excel file Type</param>
/// <returns></returns>
private bool?
IsOpenXMLFormat(string FileName)
{
string[] splitByDots =
FileName.Split(new char[1]
{ '.' });
//Excel 97-2003 file
if (splitByDots[splitByDots.Length -
1] == "xls")
return
false;
//Excel 2007 file
if (splitByDots[splitByDots.Length -
1] == "xlsx")
return
true;
//Not an Excel Sheet
return null;
}
private string
ExtendedProperties(string FileName)
{
if (null
!= IsOpenXMLFormat(FileName))
{
if (Convert.ToBoolean(IsOpenXMLFormat(FileName)))
{
return
";Extended Properties=\"Excel 8.0;HDR=YES;\"";
}
else
{
return
";Extended Properties=Excel 8.0;";
}
}
else
{
return
null;
}
}
/// <summary>
/// Bind Bug
Details Grid
/// </summary>
public void
DsGetBugDetails()
{
try
{
gvBugDetails.DataSource = ExecuteDataSet("CusTableBAUIssue",
"SpGetBugDetails");
gvBugDetails.DataBind();
}
catch (Exception
Ex)
{
throw;
}
}
#region DataBaseOperation
/// <summary>
/// Open Sql
conncetion
/// </summary>
private void
OpenConnection()
{
try
{
connectionString = "Data Source=P2010;Initial Catalog=DataBaseName;integrated
security=true;";
connection = new
SqlConnection(connectionString);
if (connection.State !=
ConnectionState.Open) connection.Open();
}
catch (Exception
ex)
{
throw
new ApplicationException(ex.Message +
"OpenDBConnection");
}
}
/// <summary>
/// Close the
connection
/// </summary>
public void
ClosedbConnection()
{
try
{
connection.Dispose();
}
catch (Exception
ex)
{
throw
new ApplicationException(ex.Message +
" CloseDBConnection");
}
}
/// <summary>
/// Return
DataSet
/// </summary>
/// <param name="tableName"></param>
/// <param name="procedureName"></param>
/// <returns></returns>
public
DataSet ExecuteDataSet(string tableName,
string procedureName)
{
DataSet dsReturn;
try
{
OpenConnection();
sqlComm = new
SqlCommand();
sqlComm.Parameters.Clear();
sqlComm.CommandType = CommandType.StoredProcedure;
sqlComm.CommandText = procedureName;
dsReturn = new
DataSet();
sqlComm.Connection = connection;
SqlDataAdapter sqlDataAdapter
= new SqlDataAdapter(sqlComm);
sqlDataAdapter.Fill(dsReturn, tableName);
}
catch (Exception
ex)
{
throw
new ApplicationException(ex.Message);
}
finally
{
ClosedbConnection();
}
return dsReturn;
}
#endregion