1. GridView to Excel
ตัวอย่างนี้จะได้ Format ของ GridView มาด้วย ถ้ามีรูปอยู่ใน GridView ต้องเป็น Full URL Path ถึงจะ Export รูปออกมาได้ เช่น http://xxx.com/test/pic.png ถ้าเป็น /test/pic.png แบบนี้รูปจะไม่มาด้วย
protected void btnExport_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
Response.ContentType = "application/vnd.ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GridView1.RenderControl(hw);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
/* Confirms that an HtmlForm control is rendered for the specified ASP.NET server control at run time. */
}
แบบนี้ format ทีเป็น style จะไม่มาด้วย
protected void btnExport_Click(object sender, EventArgs e)
{
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment;filename=" + fileName);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = _contentType;
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
System.Web.UI.HtmlControls.HtmlForm frm = new System.Web.UI.HtmlControls.HtmlForm();
frm.Attributes["runat"] = "server";
frm.Controls.Add(GridView1);
GridView1.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
}
2. Copy / Paste
วิธีนี้ใช้ได้โดยครอบส่วนที่ต้องการ Copy โดยใช้ Tag div แล้วให้ user กดที่ button Copy แล้วนำไป Paste ที่ Excel
<input type="button" value="Copy" onclick="window.clipboardData.setData('Text', document.all['MainDiv'].innerHTML)" />
3. Export to CSV
โดยดึงข้อมูลจาก DataTable
protected void btnExport_Click(object sender, EventArgs e)
{
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("th-TH");
DataTable dt = Session["ActualReceive"] as DataTable;
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment;filename=ActualReceiveReport.csv");
Response.ContentType = "application/vnd.ms-excel";
string tab = "";
foreach (DataColumn dc in dt.Columns)
{
Response.Write(tab + "\"" + dc.ColumnName + "\"");
tab = ",";
}
Response.Write("\r\n");
foreach (DataRow dr in dt.Rows)
{
tab = "";
int i;
for (i = 0; i < dt.Columns.Count; i++)
{
Response.Write(tab + "\"" + dr[i].ToString().Replace("\"","\"\"") + "\"");
tab = ",";
}
Response.Write("\r\n");
}
Response.End();
}
http://aspalliance.com/
http://www.aspsnippets.com/ มี export -> word, pdf ด้วย
http://mattberseth.com/
http://forums.asp.net/
Advertisement