narasiman rao

narasiman rao

  • NA
  • 519
  • 746.7k

Displaying the excel records into Gridview in asp.net Suing

Aug 20 2014 12:39 PM
 In My excel record as follows

Monday
Sessions

Date course session1 session2

Sub Faculty Sub Faculty

BTech1 A RJ B RK
BTech2 B SK C SV
18-Aug Btech3 C MV D SJ
GP E SV F MJ
DME3 G RY H RN

BTech4 i VJ j SK
BTech5 k RK L GV
19-Aug Btech6 M MV N TY
GP6 O SV P MJ
BME Q MY R VB


I am exporting the above excel records in Gridview as follows.

for that code as follows;

protected void btnimport_Click(object sender, EventArgs e)
{
import();
}

private void import()
{
string path = @"C:\FACULTYT.xlsx
GvSch.DataSource = ImportExcelXLS(path, false);
GvSch.DataBind();
GvSch.Visible = true;
}

public static DataSet ImportExcelXLS(string FileName, bool hasHeaders)
{
string HDR = hasHeaders ? "Yes" : "No";
string strConn;
if (FileName.Substring(FileName.LastIndexOf('.')).ToLower() == ".xlsx")
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + ";Extended Properties=\"Excel 12.0;HDR=" + HDR + ";IMEX=0\"";
else
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties=\"Excel 8.0;HDR=" + HDR + ";IMEX=0\"";

DataSet output = new DataSet();

using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();

DataTable schemaTable = conn.GetOleDbSchemaTable(
OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });

foreach (DataRow schemaRow in schemaTable.Rows)
{
string sheet = schemaRow["TABLE_NAME"].ToString();

if (!sheet.EndsWith("_"))
{
try
{
OleDbCommand cmd = new OleDbCommand("SELECT * FROM [" + sheet + "]", conn);
cmd.CommandType = CommandType.Text;

DataTable outputTable = new DataTable(sheet);
output.Tables.Add(outputTable);
new OleDbDataAdapter(cmd).Fill(outputTable);

DataTable table = new DataTable();
table.Columns.Add("Date", typeof(string));
table.Columns.Add("Course", typeof(string));
table.Columns.Add("Session", typeof(string));
table.Columns.Add("Subject", typeof(string));
table.Columns.Add("Faculty", typeof(string));

int irow = 0;
foreach (DataRow row in outputTable.Rows)
{
if (row[1].ToString() != "Course" && row[1].ToString() != "" && row[1].ToString() != null)
{
DataRow row1 = table.NewRow();
row1["Date"] = row[0].ToString();

row1["Course"] = row[1].ToString();
row1["Session"] = "1";
row1["Subject"] = row[2].ToString();
row1["Faculty"] = row[3].ToString();
if (row[2] != "" && row[3] != "")
table.Rows.Add(row1);
row1 = table.NewRow();
row1["Date"] = row[0].ToString();
row1["Course"] = row[1].ToString();
row1["Session"] = "2";
row1["Subject"] = row[4].ToString();
row1["Faculty"] = row[5].ToString();
if (row[4] != "" && row[5] != "")
table.Rows.Add(row1);
}
<pre lang="cs">irow++;
}
output.Tables.Clear();
output.Tables.Add(table);
}
catch (Exception ex)
{
throw new Exception(ex.Message + string.Format("Sheet:{0}.File:F{1}", sheet, FileName), ex);
}
finally
{

}
}
}
}
return output;
}


When i export the above excel record in to Gridview output as follows

Date Course Session Subject Faculty

18-Aug BTech1 1 A RJ
18-Aug Btech1 2 B RK
BTech2 1 B SK
Btech2 2 C SV
Btech3 1 C MV
Btech3 2 D SJ
GP 1 E SV
GP 2 F MJ
DME3 1 G RY
DME3 2 H RN
19-Aug BTech4 1 I VJ
19-Aug Btech4 2 J SK
Btech5 1 K RK
Btech5 2 L GV
Btech6 1 M MV
Btech6 2 N TY
GP6 1 O SV
GP6 2 P MJ
BME 1 Q MY
BME 2 R VB

from my above output i want the date 18-aug and 19-aug to be display for all the courses.
The 18-Aug date to be displayed onely Btech1 only for session 1 and 2.
for remaining courses the 18-Aug not displayed in the gridview.

The 19-Aug date to be displayed onely Btech4 only for session 1 and 2.
for remaining courses the 19-Aug not displayed in the gridview.

from my code what is the mistake i made please help me,

Regards,
Narasiman P.
 

Answers (1)