c# - ASP Table to Excel -
when viewing aspx in website, got table few text in cells, e.g.:
tab.rows[1].cells[1].innerhtml = "booked :"
(in lot of rows , cells different text in each cell)
now want click button, , data in table downloaded excel file.
table id : tab
protected void page_load(object sender, eventargs e) { if (!ispostback) { //table tbl = new table(); tablerow tr = new tablerow(); tablecell tcel = new tablecell(); tcel.text = "id"; tr.cells.add(tcel); tablecell tcel1 = new tablecell(); tcel1.text = "id1"; tr.cells.add(tcel1); tab.rows.add(tr); } } protected void button1_click(object sender, eventargs e) { string filename = "exportexcel.xls"; system.io.stringwriter tw = new system.io.stringwriter(); system.web.ui.htmltextwriter hw = new system.web.ui.htmltextwriter(tw); //datagrid dggrid = new datagrid(); //dggrid.datasource = tbl; //dggrid.databind(); //get html control. tab.rendercontrol(hw); //write html browser. //response.contenttype = application/vnd.ms-excel; response.contenttype = "application/vnd.ms-excel"; response.appendheader("content-disposition", "attachment; filename=" + filename + ""); this.enableviewstate = false; response.write(tw.tostring()); response.end(); }
modified watraplion answer, still not answer.. error at:
datatable dt = dt; //use of unassigned local variable 'dt'
try :
aspx design view :
<body> <form id="form1" runat="server"> <div> <asp:table id="table1" runat="server"> </asp:table> </div> <div> <asp:button id="btnexport" onclick="btnexport_click" text="export" runat="server"> </div> </form> </body>
aspx.cs ( code behind )
protected void page_load(object sender, eventargs e) { tablerow tr = new tablerow(); tablecell tcel = new tablecell(); tcel.text = "id"; tr.cells.add(tcel); tablecell tcel1 = new tablecell(); tcel1.text = "id1"; tr.cells.add(tcel1); table1.rows.add(tr); } protected void btn_click(object sender, eventargs e) { string filename = "exportexcel.xls"; system.io.stringwriter tw = new system.io.stringwriter(); system.web.ui.htmltextwriter hw = new system.web.ui.htmltextwriter(tw); //get html control. table1.rendercontrol(hw); //write html browser. //response.contenttype = application/vnd.ms-excel; response.contenttype = "application/vnd.ms-excel"; response.appendheader("content-disposition", "attachment; filename=" + filename + ""); this.enableviewstate = false; response.write(tw.tostring()); response.end(); }
Comments
Post a Comment