โมฆะส่วนตัว ExportExcelFromDataGrid (ชื่อไฟล์สตริง, System.Web.UI.WebControls.DataGrid ToExcelGrid)
-
การตอบสนอง.Clear();
Response.Buffer= จริง;
Response.Charset="utf-8";
Response.AppendHeader("การจัดการเนื้อหา", "สิ่งที่แนบมา; filename="+Server.UrlEncode ( ชื่อไฟล์ ) );
Response.ContentEncoding=System.Text.Encoding.Default;//设置输出流为简体中文
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件
นี้.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = ใหม่ System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = System.IO.StringWriter ใหม่ (myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = System.Web.UI.HtmlTextWriter ใหม่ (oStringWriter);
ToExcelGrid.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
การตอบสนองสิ้นสุด();
}
โมฆะส่วนตัว Button4_Click (ผู้ส่งวัตถุ System.EventArgs e)
-
this.Panel1.Visible = เท็จ;
ชื่อไฟล์สตริง = "内训师.xls";
this.DataGrid1.Columns[6].Visible = จริง;
this.DataGrid1.Columns[7].Visible = จริง;
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-1].Visible = เท็จ;
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-2].Visible = เท็จ;
this.DataGrid1.AllowSorting = เท็จ;
this.DataGrid1.AllowPaging = เท็จ;
this.DataGrid1.SelectedIndex = -1;
นี้.BindGrid();
this.ExportExcelFromDataGrid ( ชื่อไฟล์ , this.DataGrid1 );
}
原理是利用DataGrid(其实是其父类Control)ของ RenderControl方法输出,整个DataGrid 外观时,将这些HTML代码写入到缓冲区,同时设置一下 ContentType 让Excel 自己的自动纠错功能将这个输出存为一个Excel文件。
很多网上的朋友使用了以上这种可粘贴性强的代码,发现不好用,反映的错误类似:
“LinkButton必须放在一个具有runat=server ของฟอร์ม” 之类的话,而更多的网友说:
问题很明显,因为DataGrid没有放在runat=server 的Form里เลดี้,加上就可以了。
我认为,这种回答是很不准确的,理由如下:
通常使用这种代码的人他/她的DataGrid,最起码已经能用了,所以必定放在那个具有runat=server 的form标签里了。
ใช้ LinkButton, DataGrid, DataGrid, LinkButton อยู่แล้ว
其实真正的问题是,上的代码没有加了 // * 的那几行代码引起的。
คุณมี DataGrid อยู่แล้ว ต้องมีอยู่แล้ว
ลิงก์นี้ใช้ LinkButtion ของคุณ DataGrid แทน DataGrid ของคุณเป็น False
同样得到上的其实,那些按钮列,什么"编辑"、“删除”等等这些,也是用了LinkButton,把他设为不可见就是了。
其实说得再明白东西都不让它输出就是了