代码
1
///
<summary>
2 /// 导出到Excel
3 /// </summary>
4 /// <param name="sender"></param>
5 /// <param name="e"></param>
6 protected void ButtonInport_Click( object sender, EventArgs e)
7 {
8 DataTable dtExcel = ((DataTable)Session[ " dtExcel " ]).Copy();
9 GridViewAsset.AllowPaging = false ;
10 GridViewAsset.DataSource = dtExcel;
11 GridViewAsset.DataBind();
12 string fileName = ecelHelp.GetExportFileName( " NoMatchList.xls " , this .GridViewAsset, Server.MapPath( "" ));
13 HttpResponse httpResponse = System.Web.HttpContext.Current.Response;
14 FileInfo fileinfo = new FileInfo(Server.MapPath( "" ) + @" \ " + fileName);
15 httpResponse.Clear();
16 httpResponse.ClearHeaders();
17 httpResponse.Buffer = false ;
18 httpResponse.ContentType = " application/octet-stream " ;
19 httpResponse.AppendHeader( " Content-Disposition " , " attachment;filename= " + HttpUtility.UrlEncode(fileinfo.Name, System.Text.Encoding.UTF8));
20 httpResponse.WriteFile(fileinfo.FullName);
21 httpResponse.End();
22 httpResponse.Flush();
23 httpResponse.Close();
24 GridViewAsset.AllowPaging = true ;
25
26 }
2 /// 导出到Excel
3 /// </summary>
4 /// <param name="sender"></param>
5 /// <param name="e"></param>
6 protected void ButtonInport_Click( object sender, EventArgs e)
7 {
8 DataTable dtExcel = ((DataTable)Session[ " dtExcel " ]).Copy();
9 GridViewAsset.AllowPaging = false ;
10 GridViewAsset.DataSource = dtExcel;
11 GridViewAsset.DataBind();
12 string fileName = ecelHelp.GetExportFileName( " NoMatchList.xls " , this .GridViewAsset, Server.MapPath( "" ));
13 HttpResponse httpResponse = System.Web.HttpContext.Current.Response;
14 FileInfo fileinfo = new FileInfo(Server.MapPath( "" ) + @" \ " + fileName);
15 httpResponse.Clear();
16 httpResponse.ClearHeaders();
17 httpResponse.Buffer = false ;
18 httpResponse.ContentType = " application/octet-stream " ;
19 httpResponse.AppendHeader( " Content-Disposition " , " attachment;filename= " + HttpUtility.UrlEncode(fileinfo.Name, System.Text.Encoding.UTF8));
20 httpResponse.WriteFile(fileinfo.FullName);
21 httpResponse.End();
22 httpResponse.Flush();
23 httpResponse.Close();
24 GridViewAsset.AllowPaging = true ;
25
26 }
代码
1
///
<summary>
2 /// 把 GridView 呈现的内容导出到 Excel
3 /// </summary>
4 /// <param name="fileName"></param>
5 /// <param name="gv"></param>
6 public string GetExportFileName( string fileName, GridView gv, string filepath)
7 {
8 try
9 {
10
11 using (StringWriter sw = new StringWriter())
12 {
13
14 using (HtmlTextWriter htw = new HtmlTextWriter(sw))
15 {
16 // Create a form to contain the grid
17 Table table = new Table();
18 table.Style.Add( " border-top " , " solid 1px #cdcdcd " );
19 table.Style.Add( " border-left " , " solid 1px #cdcdcd " );
20
21 // add the header row to the table
22 if (gv.HeaderRow != null )
23 {
24 PrepareControlForExport(gv.HeaderRow);
25 table.Rows.Add(gv.HeaderRow);
26 }
27
28 // add each of the data rows to the table
29 foreach (GridViewRow row in gv.Rows)
30 {
31 PrepareControlForExport(row);
32 table.Rows.Add(row);
33 }
34
35 // add the footer row to the table
36 if (gv.FooterRow != null )
37 {
38 PrepareControlForExport(gv.FooterRow);
39 table.Rows.Add(gv.FooterRow);
40 }
41
42 // render the table into the htmlwriter
43 table.RenderControl(htw);
44 string date = System.DateTime.Now.ToString( " MMddyyyy " );
45 // string outFileName = "ExportExcel_" + date + "_" + DateTime.Now.Ticks.ToString() + "_" + fileName;
46 string outFileName = fileName;
47 string comPath = " Export/ " + outFileName;
48 string path = filepath; // +"\\Export";
49
50 if (Directory.Exists(path) == false )
51 {
52 System.IO.Directory.CreateDirectory(path);
53 }
54 path = path + " \\ " + outFileName;
55 System.Text.Encoding encode = System.Text.Encoding.Unicode;
56 StreamWriter stream = new StreamWriter(path, false , encode);
57 stream.Write(sw.ToString());
58 stream.Close();
59
60 return comPath;
61
62 }
63 }
64 }
65 catch (Exception e)
66 {
67 throw e;
68 }
69 }
2 /// 把 GridView 呈现的内容导出到 Excel
3 /// </summary>
4 /// <param name="fileName"></param>
5 /// <param name="gv"></param>
6 public string GetExportFileName( string fileName, GridView gv, string filepath)
7 {
8 try
9 {
10
11 using (StringWriter sw = new StringWriter())
12 {
13
14 using (HtmlTextWriter htw = new HtmlTextWriter(sw))
15 {
16 // Create a form to contain the grid
17 Table table = new Table();
18 table.Style.Add( " border-top " , " solid 1px #cdcdcd " );
19 table.Style.Add( " border-left " , " solid 1px #cdcdcd " );
20
21 // add the header row to the table
22 if (gv.HeaderRow != null )
23 {
24 PrepareControlForExport(gv.HeaderRow);
25 table.Rows.Add(gv.HeaderRow);
26 }
27
28 // add each of the data rows to the table
29 foreach (GridViewRow row in gv.Rows)
30 {
31 PrepareControlForExport(row);
32 table.Rows.Add(row);
33 }
34
35 // add the footer row to the table
36 if (gv.FooterRow != null )
37 {
38 PrepareControlForExport(gv.FooterRow);
39 table.Rows.Add(gv.FooterRow);
40 }
41
42 // render the table into the htmlwriter
43 table.RenderControl(htw);
44 string date = System.DateTime.Now.ToString( " MMddyyyy " );
45 // string outFileName = "ExportExcel_" + date + "_" + DateTime.Now.Ticks.ToString() + "_" + fileName;
46 string outFileName = fileName;
47 string comPath = " Export/ " + outFileName;
48 string path = filepath; // +"\\Export";
49
50 if (Directory.Exists(path) == false )
51 {
52 System.IO.Directory.CreateDirectory(path);
53 }
54 path = path + " \\ " + outFileName;
55 System.Text.Encoding encode = System.Text.Encoding.Unicode;
56 StreamWriter stream = new StreamWriter(path, false , encode);
57 stream.Write(sw.ToString());
58 stream.Close();
59
60 return comPath;
61
62 }
63 }
64 }
65 catch (Exception e)
66 {
67 throw e;
68 }
69 }
将以上代码改进成公共方法:
代码
1
///
<summary>
2 /// 将网格数据导出到Excel
3 /// </summary>
4 /// <param name="ctrl"> 网格名称(如GridView1) </param>
5 /// <param name="FileType"> 要导出的文件类型(Excel:application/ms-excel) </param>
6 /// <param name="FileName"> 要保存的文件名 </param>
7 public static void GridViewToExcel(Control ctrl, string FileType, string FileName)
8 {
9 HttpContext.Current.Response.Charset = " GB2312 " ;
10 HttpContext.Current.Response.ContentEncoding = Encoding.UTF8; // 注意编码
11 HttpContext.Current.Response.AppendHeader( " Content-Disposition " ,
12 " attachment;filename= " + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
13 HttpContext.Current.Response.ContentType = FileType; // image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
14 ctrl.Page.EnableViewState = false ;
15 StringWriter tw = new StringWriter();
16 HtmlTextWriter hw = new HtmlTextWriter(tw);
17 ctrl.RenderControl(hw);
18 HttpContext.Current.Response.Write(tw.ToString());
19 HttpContext.Current.Response.End();
20 }
2 /// 将网格数据导出到Excel
3 /// </summary>
4 /// <param name="ctrl"> 网格名称(如GridView1) </param>
5 /// <param name="FileType"> 要导出的文件类型(Excel:application/ms-excel) </param>
6 /// <param name="FileName"> 要保存的文件名 </param>
7 public static void GridViewToExcel(Control ctrl, string FileType, string FileName)
8 {
9 HttpContext.Current.Response.Charset = " GB2312 " ;
10 HttpContext.Current.Response.ContentEncoding = Encoding.UTF8; // 注意编码
11 HttpContext.Current.Response.AppendHeader( " Content-Disposition " ,
12 " attachment;filename= " + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
13 HttpContext.Current.Response.ContentType = FileType; // image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
14 ctrl.Page.EnableViewState = false ;
15 StringWriter tw = new StringWriter();
16 HtmlTextWriter hw = new HtmlTextWriter(tw);
17 ctrl.RenderControl(hw);
18 HttpContext.Current.Response.Write(tw.ToString());
19 HttpContext.Current.Response.End();
20 }