大数据之路

博客园 首页 新随笔 联系 订阅 管理
打印datagrid里面的数据到excel.word中
1.
 1public void databind()
 2        {
 3            string selectstring="select * from BudgetUnit ";
 4            this.DataGrid1.DataSource=db.GetDataSetSQL(selectstring);
 5            this.DataGrid1.DataBind();
 6            
 7        }

 8        private void Button1_Click(object sender, System.EventArgs e)
 9        {
10          
11          PrintClass pr=new PrintClass();
12            Response.Write(pr.DGPrint(db.GetDataSetSQL(selectstring2)));
13        }

14
15        private void Button2_Click(object sender, System.EventArgs e)
16        {
17            this.DataGrid1.DataSource=db.GetDatatable(selectstring2);
18               this.DataGrid1.DataBind();
19            //Response.ContentType="application/vnd.ms-excel";
20            //Response.AddHeader("Content=Disposition","incline;filename=BrowerExcel.xls");
21            //如果输出未word,修改为以下代码
22            Response.ContentType="appliciation/ms-word";
23            Response.AddHeader("Content=Disposition","incline;filename=test.doc");
24            StringBuilder sb=new StringBuilder();
25            System.IO.StringWriter sw=new System.IO.StringWriter(sb);
26            System.Web.UI.HtmlTextWriter hw=new HtmlTextWriter(sw);
27            sb.Append("<html><body>");
28            this.DataGrid1.RenderControl(hw);
29            sb.Append("</body></html>");
30            Response.Write(sb.ToString());
31            Response.End();
32        }

33
34    }

2.调用的打印类
  1using System;
  2using System.Collections;
  3using System.ComponentModel;
  4using System.Data;
  5using System.Drawing;
  6using System.Web;
  7using System.Web.SessionState;
  8using System.Web.UI;
  9using System.Web.UI.WebControls;
 10using System.Web.UI.HtmlControls;
 11using System.Text;
 12namespace  GkzfWebUI.testtest
 13{
 14    /// <summary>
 15    /// PrintClass 的摘要说明。
 16    /// </summary>

 17    public class PrintClass : System.Web.UI.Page
 18    {
 19        public PrintClass()
 20        {
 21            //
 22            // TODO: 在此处添加构造函数逻辑
 23            //
 24        }

 25        /// <summary>
 26        /// 拼出要打印的表
 27        /// </summary>
 28        /// <param name="ds">DATASET</param>
 29        /// <param name="dg">DATAGRID</param>
 30        /// <returns></returns>

 31        public string DGPrint(DataSet ds)
 32        {
 33            //*************************************************************//
 34
 35            DataTable myDataTable=new DataTable();
 36            myDataTable=ds.Tables[0];
 37
 38            int myRow=myDataTable.Rows.Count; 
 39            int myCol=myDataTable.Columns.Count;
 40
 41            StringBuilder sb=new StringBuilder();  
 42     
 43             string colHeaders="<html><body>"+
 44                "<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'VIEWASTEXT></object>"
 45                +"<table><tr>";  
 46
 47            for(int i=0;i<myCol;i++)
 48            {     
 49                colHeaders +="<td>"+ myDataTable.Columns[i].ColumnName.ToString()+"</td>";
 50            }

 51            colHeaders += "</tr>";
 52            sb.Append(colHeaders);
 53
 54            for(int i=0;i<myRow;i++)
 55            {       
 56                sb.Append("<tr>");
 57                for(int j=0;j<myCol;j++)
 58                {
 59                    sb.Append("<td>");
 60                    sb.Append(myDataTable.Rows[i][j].ToString().Trim());
 61                    sb.Append("</td>");
 62                }

 63                sb.Append("</tr>");   
 64            }

 65
 66            sb.Append("</table></body></html>"); 
 67            colHeaders=sb.ToString();               
 68            colHeaders+="<script languge='javascript'>WebBrowser.ExecWB(7,1); window.opener=null;window.close();</script>" ;
 69            return(colHeaders);
 70            //*************************************************************//
 71   
 72        }

 73
 74        /// <summary>
 75        ///  拼出要打印的表
 76        /// </summary>
 77        /// <param name="dg">datagrid</param>
 78        /// <returns></returns>

 79        public string DGPrint(DataGrid dg)
 80        {
 81            int myRow=dg.Items.Count;   
 82            int myCol=dg.Columns.Count;
 83            StringBuilder sb=new StringBuilder();           
 84 
 85            string colHeaders="<html><body>"+
 86                "<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'VIEWASTEXT></object>"
 87                +"<table><tr>";  
 88
 89            for(int i=0;i<myCol;i++)
 90            {
 91                colHeaders +="<td>"+ dg.Columns[i].HeaderText.ToString()+"</td>";
 92            }

 93            colHeaders += "</tr>";
 94            sb.Append(colHeaders);
 95
 96            for(int i=0;i<myRow;i++)
 97            {       
 98                sb.Append("<tr>");
 99                for(int j=0;j<myCol;j++)
100                {
101                    sb.Append("<td>");
102                    sb.Append(dg.Items[i].Cells[j].Text.Trim());
103                    sb.Append("</td>");
104                }

105                sb.Append("</tr>");   
106            }

107            sb.Append("</table></body></html>"); 
108            colHeaders=sb.ToString();               
109            colHeaders+="<script languge='javascript'>WebBrowser.ExecWB(7,1); window.opener=null;window.close();</script>" ;
110            return(colHeaders);
111        }

112
113    }

114}

115
3.直接调用打印类
private void Button1_Click(object sender, System.EventArgs e)
  {
   
    PrintClass pr=new PrintClass();
   Response.Write(pr.DGPrint(db.GetDataSetSQL(selectstring2)));
  }
posted on 2006-07-10 12:27  小潘  阅读(919)  评论(0)    收藏  举报