导出文件到EXCEL之二:前台写入

 

  1         /// <summary>
  2         /// 导出到EXCEL
  3         /// </summary>
  4         /// <param name="sender"></param>
  5         /// <param name="e"></param>
  6         protected void btReport_Click(object sender, EventArgs e)
  7         {
  8             if (rep_Items.Items.Count <= 0)
  9             {
 10                 Common.JavascriptHelper.Alert("没有数据,无法导出!"this);
 11                 return;
 12             }
 13 
 14             //string ids = "";
 15             //for (int i = 0; i < rep_Items.Items.Count; i++)
 16             //{
 17             //    //string userid = ((DataRowView)rptTask.Items[i].DataItem).Row["ResponsibleUnits"].ToString();//获得对应ID
 18             //    string id = ((Label)rep_Items.Items[i].FindControl("lblid")).Text;//获得对应ID
 19             //    ids += id + ",";
 20 
 21             //}
 22             ////生成Excel
 23             ////Taskids = "2,3,";
 24             //if (ids != "")
 25             //{
 26             //    string[] TaskArray = ids.Substring(0, ids.Length - 1).Split(new char[] { ',' });
 27             //    GenExcel(TaskArray);
 28             //    //Response.Write(Taskids);
 29             //}
 30             //1.导出到EXCEL不存放到服务器上
 31             string FileName = "项目基本情况一览表" + "_" + DateTime.Now.ToString("yyyy-MM-dd_HHmmss");
 32             if (!String.IsNullOrEmpty(Request.UserAgent))
 33             {
 34                 if (!(Request.UserAgent.IndexOf("Firefox") > -1 && Request.UserAgent.IndexOf("Gecko") > -1))
 35                 {
 36                     FileName = Server.UrlEncode(FileName);
 37                 }
 38             }
 39             Common.ExcelHelper.GetToExcelStyle(this, FileName);
 40             ProjectListSheet();
 41             Response.Write("</Workbook>");
 42             Response.End();
 43 
 44         }
 45         /// <summary>
 46         /// 项目基本情况导出
 47         /// </summary>
 48         public void ProjectListSheet()
 49         {
 50             string query = "";
 51             if (Session["Rid"] != null && Session["uid"] != null)
 52             {
 53                 query = Common.PublicMethod.GetRoleItem(Session["Rid"], Session["uid"]);
 54             }
 55             DataTable dt = new BLL.ProjectInfo().GetList(query).Tables[0];
 56             int count = dt.Rows.Count;
 57             string name = "项目基本情况一览表";
 58             Response.Write("<Worksheet ss:Name='" + name + "'>");
 59             //Response.Write("<Table ss:ExpandedColumnCount='10' ss:ExpandedRowCount='" + (count + 3) + "' x:FullColumns='1'");
 60             //Response.Write("x:FullRows='1' ss:DefaultColumnWidth='100'");
 61             //Response.Write("ss:DefaultRowHeight='18'>");
 62             Response.Write("<Table x:FullColumns='1' x:FullRows='1'>");
 63             //定义标题的列宽
 64             Response.Write("<Column ss:AutoFitWidth='0' ss:Width='150'/>");
 65             Response.Write("<Column ss:AutoFitWidth='0'  ss:Width='250'/>");
 66             Response.Write("<Column  ss:AutoFitWidth='0' ss:Width='250'/>");
 67             Response.Write("<Column ss:AutoFitWidth='0' ss:Width='135'/>");
 68             Response.Write("<Column ss:AutoFitWidth='0' ss:Width='180'/>");
 69             Response.Write("<Column ss:AutoFitWidth='0' ss:Width='150'/>");
 70             Response.Write("<Column ss:AutoFitWidth='0' ss:Width='150'/>");
 71             Response.Write("<Column ss:AutoFitWidth='0' ss:Width='150'/>");
 72             Response.Write("<Column ss:AutoFitWidth='0' ss:Width='150'/>");
 73             Response.Write("<Column ss:AutoFitWidth='0' ss:Width='150'/>");
 74             Response.Write("<Row ss:AutoFitHeight='0' ss:Height='50'>");
 75             Response.Write("<Cell ss:MergeAcross='9' ss:StyleID='s75'><Data ss:Type='String'>" + name + "</Data></Cell>");
 76             Response.Write("</Row>");
 77             Response.Write("\r\n<Row ss:AutoFitHeight='1' ss:Height='30'>");
 78             Response.Write("<Cell ss:StyleID='s64'><Data ss:Type='String'>项目(子)编号</Data></Cell>");
 79             Response.Write("<Cell ss:StyleID='s64'><Data ss:Type='String'>项目名称</Data></Cell>");
 80             Response.Write("<Cell ss:StyleID='s64'><Data ss:Type='String'>项目业主</Data></Cell>");
 81             Response.Write("<Cell ss:StyleID='s64'><Data ss:Type='String'>项目类型</Data></Cell>");
 82             Response.Write("<Cell ss:StyleID='s64'><Data ss:Type='String'>所属指挥部</Data></Cell>");
 83             Response.Write("<Cell ss:StyleID='s64'><Data ss:Type='String'>所属区政府</Data></Cell>");
 84             Response.Write("<Cell ss:StyleID='s64'><Data ss:Type='String'>代建单位</Data></Cell>");
 85             Response.Write("<Cell ss:StyleID='s64'><Data ss:Type='String'>开工日期</Data></Cell>");
 86             Response.Write("<Cell ss:StyleID='s64'><Data ss:Type='String'>计划竣工日期</Data></Cell>");
 87             Response.Write("<Cell ss:StyleID='s64'><Data ss:Type='String'>项目总投资(亿元)</Data></Cell>");
 88             Response.Write("\r\n</Row>");
 89             for (int j = 0; j < dt.Rows.Count; j++)
 90             {
 91                 Response.Write("<Row ss:AutoFitHeight='1' ss:Height='18'>");
 92                 Response.Write("<Cell ss:StyleID='s65'><Data ss:Type='String'>" + dt.Rows[j]["ProjectCode"] + "</Data></Cell>");
 93                 Response.Write(" <Cell ss:StyleID='s65'><Data ss:Type='String'>" + dt.Rows[j]["ProjectName"] + "</Data></Cell>");
 94                 Response.Write("<Cell ss:StyleID='s65'><Data ss:Type='String'>" + Common.PublicMethod.GetOwnerName(dt.Rows[j]["ProjectID"]) + "</Data></Cell>");
 95                 Response.Write("<Cell ss:StyleID='s65'><Data ss:Type='String'>" + Common.PublicMethod.GetProjectType(dt.Rows[j]["ProjectType"]) + "</Data></Cell>");
 96                 Response.Write("<Cell ss:StyleID='s65'><Data ss:Type='String'>" + Common.PublicMethod.GetUserNameByID(dt.Rows[j]["HeadquartersID"]) + "</Data></Cell>");
 97                 Response.Write("<Cell ss:StyleID='s65'><Data ss:Type='String'>" + Common.PublicMethod.GetAreaName(dt.Rows[j]["Area"]) + "</Data></Cell>");
 98                 Response.Write("<Cell ss:StyleID='s65'><Data ss:Type='String'>" + dt.Rows[j]["ConstructionUnit"] + "</Data></Cell>");
 99                 Response.Write("<Cell ss:StyleID='s65'><Data ss:Type='String'>" + dt.Rows[j]["PlanStartTime"] + "</Data></Cell>");
100                 Response.Write("<Cell ss:StyleID='s65'><Data ss:Type='String'>" + dt.Rows[j]["PlanEndDate"] + "</Data></Cell>");
101                 Response.Write("<Cell ss:StyleID='s65'><Data ss:Type='String'>" + dt.Rows[j]["TotalInvestment"] + "</Data></Cell>");
102                 Response.Write("<Cell ><Data ss:Type='String'></Data></Cell>");
103                 Response.Write("</Row>");
104 
105             }
106             Response.Write("</Table>");
107             Response.Write("</Worksheet>");
108             Response.Flush();
109         }
110         //创建用户文件夹
111         public  string FilesOperationUrl()
112         {
113             if (Session["uid"] == null)
114             {
115                 return "";
116             }
117             int id = Convert.ToInt32(Session["uid"]);
118             Model.UsersInfo model = new BLL.UsersInfo().GetModel (id);
119             string filelist = !string.IsNullOrEmpty(model.LoginName) ? model.LoginName : "";
120             if (Directory.Exists(Server.MapPath("~/Files")) == false)
121             {
122                 Directory.CreateDirectory(Server.MapPath("~/Files"));
123                 return "";
124             }
125             if (Directory.Exists(Server.MapPath("~/Files/UsersDataCenter")) == false)
126             {
127                 Directory.CreateDirectory(Server.MapPath("~/Files/UsersDataCenter"));
128                 return "";
129             }
130             if (Directory.Exists(Server.MapPath("~/Files/UsersDataCenter/" + filelist + "")) == false)
131             {
132                 Directory.CreateDirectory(Server.MapPath("~/Files/UsersDataCenter/" + filelist + ""));
133             }
134             return  "Files/UsersDataCenter/" + filelist + "/";
135         }
导出到Excel样的式 
 1    public static void GetToExcelStyle(Page pagename, string filename)
 2         {
 3             pagename.Response.ClearContent();
 4             pagename.Response.BufferOutput = true;
 5             pagename.Response.Charset = "utf-8";
 6             pagename.Response.ContentType = "application/ms-excel";
 7             pagename.Response.AddHeader("Content-Transfer-Encoding""binary");
 8             pagename.Response.ContentEncoding = System.Text.Encoding.UTF8 ;
 9             pagename.Response.AppendHeader("Content-Disposition""attachment;filename=" + filename + ".xls");
10             pagename.Response.Write("<?xml version='1.0'?><?mso-application progid='Excel.Sheet'?>");
11             pagename.Response.Write(@"<Workbook xmlns='urn:schemas-microsoft-com:office:spreadsheet'
12        xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel'
13        xmlns:ss='urn:schemas-microsoft-com:office:spreadsheet' xmlns:html='http://www.w3.org/TR/REC-html40'>");
14             pagename.Response.Write("<DocumentProperties xmlns='urn:schemas-microsoft-com:office:office'>");
15             pagename.Response.Write("<LastPrinted>2012-02-24T00:53:33Z</LastPrinted>");
16             pagename.Response.Write("<Created>1996-12-17T01:32:42Z</Created>");
17             pagename.Response.Write("<LastSaved>2012-03-01T07:37:46Z</LastSaved>");
18             pagename.Response.Write("<Version>14.00</Version>");
19             pagename.Response.Write("</DocumentProperties>");
20             //设置默认样式
21             pagename.Response.Write("<Styles>");
22             pagename.Response.Write(" <Style ss:ID='Default' ss:Name='Normal'>");
23             pagename.Response.Write("<Alignment ss:Vertical='Bottom'/>");
24             pagename.Response.Write("<Borders/>");
25             pagename.Response.Write("<Font ss:FontName='宋体' x:CharSet='134' ss:Size='12'/>");
26             pagename.Response.Write("<Interior/>");
27             pagename.Response.Write("<NumberFormat/>");
28             pagename.Response.Write("<Protection/>");
29             pagename.Response.Write("</Style>");
30             //设置S64的样式
31             pagename.Response.Write("<Style ss:ID='s64'>");
32             pagename.Response.Write("<Alignment ss:Horizontal='Center' ss:Vertical='Center' ss:WrapText='1'/>");
33             pagename.Response.Write("<Borders>");
34             pagename.Response.Write("<Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1'/>");
35             pagename.Response.Write("<Border ss:Position='Left' ss:LineStyle='Continuous' ss:Weight='1'/>");
36             pagename.Response.Write("<Border ss:Position='Right' ss:LineStyle='Continuous' ss:Weight='1'/>");
37             pagename.Response.Write("<Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1'/>");
38             pagename.Response.Write("</Borders>");
39             pagename.Response.Write("<Font ss:FontName='华文仿宋' x:CharSet='134' ss:Size='12' ss:Bold='1'/>");
40             pagename.Response.Write("</Style>");
41             pagename.Response.Write("<Style ss:ID='s65'>");
42             pagename.Response.Write("<Alignment ss:Horizontal='Center' ss:Vertical='Center'/>");
43             pagename.Response.Write("<Borders>");
44             pagename.Response.Write("<Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1'/>");
45             pagename.Response.Write("<Border ss:Position='Left' ss:LineStyle='Continuous' ss:Weight='1'/>");
46             pagename.Response.Write("<Border ss:Position='Right' ss:LineStyle='Continuous' ss:Weight='1'/>");
47             pagename.Response.Write("<Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1'/>");
48             pagename.Response.Write("</Borders>");
49             pagename.Response.Write("<Font ss:FontName='华文仿宋' x:CharSet='134' ss:Size='12'/>");
50             pagename.Response.Write("<NumberFormat ss:Format='@'/>");
51             pagename.Response.Write("</Style>");
52             pagename.Response.Write("<Style ss:ID='s75'>");
53             pagename.Response.Write("<Alignment ss:Horizontal='Center' ss:Vertical='Center' ss:WrapText='1'/>");
54             pagename.Response.Write("<Borders>");
55             pagename.Response.Write("<Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1'/>");
56             pagename.Response.Write("</Borders>");
57             pagename.Response.Write("<Font ss:FontName='宋体' x:CharSet='134' ss:Size='20' ss:Bold='1'/>");
58             pagename.Response.Write("</Style>");
59             pagename.Response.Write("</Styles>");
60         }

 

posted @ 2012-04-29 19:43  做最好の自己  阅读(2944)  评论(1编辑  收藏  举报