currently I able to import an excel file into gridview by using exceldatareader library. Now, I want to further improve to import multiple excel sheet into gridview. This is the output I wish to do. ImageOutput I able to get the excel sheet name into the dropdownlist but I have no idea how to get the data from the second sheet. I tried google but still cant found any answer yet.
So now my problem how can I select the sheet name from the dropdownlist and show that sheet data in the gridview.
Below is my code:
public partial class ReadExcel : System.Web.UI.Page
{
DataSet result;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnLoad_Click(object sender, EventArgs e)
{
dataUpload();
}
protected void dataUpload()
{
if (FileUpload1.HasFile)
{
string path = Path.GetFileName(FileUpload1.PostedFile.FileName);
string Extension = Path.GetExtension(FileUpload1.PostedFile.FileName);
string filepath = Server.MapPath("~/" + path);
FileUpload1.SaveAs(filepath);
FileStream stream = File.Open(filepath, FileMode.Open, FileAccess.Read);
//for excel 2003
// IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
// for Excel 2007
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
excelReader.IsFirstRowAsColumnNames = true;
result = excelReader.AsDataSet();
ddlSheet.Items.Clear();
foreach(DataTable dt in result.Tables)
{
ddlSheet.Items.Add(dt.TableName);
}
//excelReader.IsFirstRowAsColumnNames = true;
while (excelReader.Read())
{
// int i = excelReader.GetInt32(0);
GridView1.DataSource = result;
GridView1.DataBind();
}
}
else
{
lblError.Text = "Unable to upload the selected file. Please check the selected file path or confirm that the file is not blank!";
}
}
protected void ddlSheet_SelectedIndexChanged(object sender, EventArgs e)
{
GridView1.DataSource = result;
GridView1.DataBind();
}
}