protected
void
Page_Load(
object
sender, EventArgs e)
07 | string script = "_spOriginalFormAction = document.forms[0].action;/n_spSuppressFormOnSubmitWrapper = true;" ; |
08 | this .ClientScript.RegisterClientScriptBlock( this .GetType(), "script" , script, true ); |
创建ToolBar方法:
01 | private void CreateToolBar() |
03 | ToolBar tb = (ToolBar)Page.LoadControl( "~/_controltemplates/ToolBar.ascx" ); |
05 | ToolBarButton btnExportToExcel = (ToolBarButton)Page.LoadControl( "~/_controltemplates/ToolBarButton.ascx" ); |
06 | btnExportToExcel.ID = "btnExportToExcel" ; |
07 | btnExportToExcel.Text = "Export to Spreadsheet" ; |
08 | btnExportToExcel.ImageUrl = "/_layouts/images/icxls.gif" ; |
09 | btnExportToExcel.Click += new EventHandler(btnExportToExcel_Click); |
11 | tb.Buttons.Controls.Add(btnExportToExcel); |
12 | this .pnlToolbar.Controls.Clear(); |
13 | this .pnlToolbar.Controls.Add(tb); |
导出按钮事件:
1 | void btnExportToExcel_Click( object sender, EventArgs e) |
3 | ExportToExcel( "SearchResults" , gvSearchResults); |
下面是SharePoint中导出Excel的完整代码:
01 | protected void ExportToExcel( string fileName, GridView gv) |
04 | Response.Charset = "GB2312" ; |
05 | Response.AddHeader( "content-disposition" , string .Format( "attachment; filename={0}" , fileName)); |
06 | Response.ContentType = "application/ms-excel" ; |
08 | using (TextWriter tw = new StringWriter()) |
10 | using (HtmlTextWriter htw = new HtmlTextWriter(tw)) |
12 | Table table = new Table(); |
13 | table.GridLines = gv.GridLines; |
15 | if (gv.HeaderRow != null ) |
17 | PrepareControlForExport(gv.HeaderRow); |
18 | table.Rows.Add(gv.HeaderRow); |
21 | foreach (GridViewRow row in gv.Rows) |
23 | PrepareControlForExport(row); |
27 | if (gv.FooterRow != null ) |
29 | PrepareControlForExport(gv.FooterRow); |
30 | table.Rows.Add(gv.FooterRow); |
33 | table.RenderControl(htw); |
35 | Response.Write(tw.ToString()); |
41 | private void PrepareControlForExport(Control control) |
43 | for ( int i = 0; i < control.Controls.Count; i++) |
45 | Control current = control.Controls[i]; |
47 | if (current is LinkButton) |
49 | control.Controls.Remove(current); |
50 | control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text)); |
52 | else if (current is ImageButton) |
54 | control.Controls.Remove(current); |
55 | control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText)); |
57 | else if (current is HyperLink) |
59 | control.Controls.Remove(current); |
60 | control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text)); |
62 | else if (current is DropDownList) |
64 | control.Controls.Remove(current); |
65 | control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text)); |
67 | else if (current is CheckBox) |
69 | control.Controls.Remove(current); |
70 | control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "True" : "False" )); |
73 | if (current.HasControls()) |
75 | PrepareControlForExport(current); |