在asp.net应用程序中使用office(主要是excel)

编程入门 行业动态 更新时间:2024-10-10 12:19:20
本文介绍了在asp应用程序中使用office(主要是excel)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想从GridView数据创建一个excel文件并提示用户下载或保存文件.我很清楚如何在asp中使用response.addheader ...来做到这一点,但是如果我这样做的话,那就是excel文件中的白色背景,没有显示行和列边框,但仅显示了gridview数据的边框.所以我正在考虑使用Office对象库来创建excel文件并独立下载版本,就像任何excel版本一样可以... .codeproject专家请帮忙.....

I want to create a excel file from GridView data and prompt user to download or save file.i know well how to do it using response.addheader... in asp.but if i do this way then there is a white background in the excel file and no row and column border shown but shown border of gridview data only.so i am thinking to work with office object library to create excel file and download with version independently like any excel version will work....codeproject experts kindly help me.....

推荐答案

我正在使用Matt Berseth解决方案.他的网页不再可用,因此我将在此处进行代码... 助手类 Hi, I''m using Matt Berseth solution. His web page is not available anymore so I''ll c/p code here... Helper class using System; using System.Data; using System.Configuration; using System.IO; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; /// <summary> /// GridView Export Utilities /// </summary> public class GridViewExportUtil { /// <summary> /// Exports GridView to excel /// </summary> /// <param name="fileName">File name</param> /// <param name="gv">GridView to export</param> public static void Export(string fileName, GridView gv) { HttpContext.Current.Response.Clear(); HttpContext.Current.Response.AddHeader( "content-disposition", string.Format("attachment; filename={0}", fileName)); HttpContext.Current.Response.ContentType = "application/ms-excel"; using (StringWriter sw = new StringWriter()) { using (HtmlTextWriter htw = new HtmlTextWriter(sw)) { // Create a form to contain the grid Table table = new Table(); // add the header row to the table if (gv.HeaderRow != null) { GridViewExportUtil.PrepareControlForExport(gv.HeaderRow); table.Rows.Add(gv.HeaderRow); } // add each of the data rows to the table foreach (GridViewRow row in gv.Rows) { GridViewExportUtil.PrepareControlForExport(row); table.Rows.Add(row); } // add the footer row to the table if (gv.FooterRow != null) { GridViewExportUtil.PrepareControlForExport(gv.FooterRow); table.Rows.Add(gv.FooterRow); } // render the table into the htmlwriter table.RenderControl(htw); // render the htmlwriter into the response HttpContext.Current.Response.Write(sw.ToString()); HttpContext.Current.Response.End(); } } } /// <summary> /// Replace any of the contained controls with literals /// </summary> /// <param name="control"></param> private static void PrepareControlForExport(Control control) { for (int i = 0; i < control.Controls.Count; i++) { Control current = control.Controls[i]; if (current is LinkButton) { control.Controls.Remove(current); control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text)); } else if (current is ImageButton) { control.Controls.Remove(current); control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText)); } else if (current is HyperLink) { control.Controls.Remove(current); control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text)); } else if (current is DropDownList) { control.Controls.Remove(current); control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text)); } else if (current is CheckBox) { control.Controls.Remove(current); control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "True" : "False")); } if (current.HasControls()) { GridViewExportUtil.PrepareControlForExport(current); } } } }

使带有网格的ASP.NET页并在Button单击上调用export

Make ASP.NET page with grid and call export on Button click

GridViewExportUtil.Export("Customers.xls", this.gvCustomers);

浏览以下链接 netoffice.codeplex/ [ ^ ] msdn.microsoft/en-us/library/aa701256 (v = office.11​​).aspx [ ^ ] 谢谢 --RA Go through the below links netoffice.codeplex/[^] msdn.microsoft/en-us/library/aa701256(v=office.11).aspx[^] Thanks --RA

更多推荐

在asp.net应用程序中使用office(主要是excel)

本文发布于:2023-11-12 14:04:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1581708.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:应用程序   主要是   net   asp   office

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!