asp.net實(shí)現(xiàn)導(dǎo)出DataTable數(shù)據(jù)到Word或者Excel的方法
本文實(shí)例講述了asp.net實(shí)現(xiàn)導(dǎo)出DataTable數(shù)據(jù)到Word或者Excel的方法。分享給大家供大家參考,具體如下:
/// <summary>< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" /> /// 導(dǎo)出DataTable數(shù)據(jù)到Word或者Excel /// </summary> /// <param name="pPage">Page指令</param> /// <param name="dt">DataTable數(shù)據(jù)表</param> /// <param name="str_ExportTitle">導(dǎo)出Word或者Excel表格的名字</param> /// <param name="str_ExportContentTitle">導(dǎo)出Word或者Excel表格中內(nèi)容的標(biāo)題</param> /// <param name="str_ExportMan">導(dǎo)出Word或者Excel的人</param> /// <param name="str_ExportType">導(dǎo)出類型(w:Word,e:Excel)</param> public bool DataTableToExcel(Page pPage, DataTable dt, string str_ExportTitle, string str_ExportContentTitle, string str_ExportMan, string str_ExportType) { bool bl_Result = false; string str_ExportTypeName = "word";//導(dǎo)出類型 string str_ExportFormat = ".doc";//導(dǎo)出類型的格式 if (str_ExportType.Equals("e")) { str_ExportTypeName = "excel"; str_ExportFormat = ".xls"; } HttpResponse response = pPage.Response; if (dt.Rows.Count > 0) { response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); response.ContentType = "application/ms-" + str_ExportTypeName; response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(str_ExportTitle, System.Text.Encoding.UTF8).ToString() //該段需加,否則會(huì)出現(xiàn)中文亂碼 + str_ExportFormat); //獲取DataTable的總列數(shù) int i_ColumnCount = dt.Columns.Count; //定義變量存儲(chǔ)DataTable內(nèi)容 System.Text.StringBuilder builder = new System.Text.StringBuilder(); builder.Append("<html><head>\n"); builder.Append("<meta http-equiv=\"Content-Language\" content=\"zh-cn\">\n"); builder.Append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">\n"); builder.Append("</head>\n"); builder.Append("<table border='1' style='width:auto;'>"); if (!string.IsNullOrEmpty(str_ExportContentTitle)) { builder.Append(string.Concat(new object[] { "<tr><td colspan=", (i_ColumnCount + 1), " style='border:1px #7f9db9 solid;font-size:18px;font-weight:bold;'>", str_ExportContentTitle, "</td></tr>" })); } builder.Append("<tr><td colspan=" + (i_ColumnCount + 1) + " valign='middle' style='border:1px #7f9db9 solid;height:24px;'>"); builder.Append("導(dǎo)出人:【" + str_ExportMan + "】,導(dǎo)出時(shí)間:【" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "】</td></tr>"); builder.Append("<tr>\n"); builder.Append("<td style='border:1px #7f9db9 solid;bgcolor:#dee7f1;font-weight:bold;width:auto;'>序號(hào)</td>\n"); for (int i = 0; i < i_ColumnCount; i++) { if (dt.Columns[i].Caption.ToString().ToLower() != "id") { builder.Append("<td style='border:1px #7f9db9 solid;bgcolor:#dee7f1;width:auto;' align='center'><b>" + dt.Columns[i].Caption.ToString() + "</b></td>\n"); } } #region 此處沒有在導(dǎo)出的數(shù)據(jù)列的最前面加一列(序號(hào)列) //此處沒有在導(dǎo)出的數(shù)據(jù)列的最前面加一列(序號(hào)列) //foreach (DataRow row in dt.Rows) //{ // builder.Append("<tr>"); // for (int j = 0; j < i_ColumnCount; j++) // { // if (dt.Columns[j].Caption.ToString().ToLower() != "id") // { // builder.Append("<td style='border:1px #7f9db9 solid;vnd.ms-excel.numberformat:@'>" + row[j].ToString() + "</td>"); // } // } // builder.Append("</tr>\n"); //} #endregion #region 在導(dǎo)出的數(shù)據(jù)列的最前面加了一序號(hào)列(注意:非DataTable數(shù)據(jù)的序號(hào)) //在導(dǎo)出的數(shù)據(jù)列的最前面加了一序號(hào)列(注意:非DataTable數(shù)據(jù)的序號(hào)) for (int m = 0; m < dt.Rows.Count; m++) { builder.Append("<tr>"); for (int j = 0; j < i_ColumnCount; j++) { if (dt.Columns[j].Caption.ToString().ToLower() != "id") { if (j == 0) { builder.Append("<td style='border:1px #7f9db9 solid;width:auto;' align='center'>" + (m + 1) + "</td>"); } if (j > 0) { builder.Append("<td style='border:1px #7f9db9 solid;width:auto;vnd.ms-excel.numberformat:@' align='left'>" + dt.Rows[m][j - 1].ToString() + "</td>"); } if (j == dt.Columns.Count - 1) { builder.Append("<td style='border:1px #7f9db9 solid;width:auto;vnd.ms-excel.numberformat:@' align='left'>" + dt.Rows[m][j].ToString() + "</td>"); } } } builder.Append("</tr>\n"); } #endregion builder.Append("<tr><td colspan=" + (i_ColumnCount + 1) + " valign='middle' style='border:1px #7f9db9 solid;height:24px;' align='left'>"); builder.Append("合計(jì):共【<font color='red'><b>" + dt.Rows.Count + "</b></font>】條記錄</td></tr>"); builder.Append("<tr>\n"); builder.Append("</table>"); response.Write(builder.ToString()); response.End(); bl_Result = true; } return bl_Result; }
更多關(guān)于asp.net相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《asp.net操作json技巧總結(jié)》、《asp.net字符串操作技巧匯總》、《asp.net操作XML技巧總結(jié)》、《asp.net文件操作技巧匯總》、《asp.net ajax技巧總結(jié)專題》及《asp.net緩存操作技巧總結(jié)》。
希望本文所述對(duì)大家asp.net程序設(shè)計(jì)有所幫助。
- Asp.net MVC實(shí)現(xiàn)生成Excel并下載功能
- asp.net 利用NPOI導(dǎo)出Excel通用類的方法
- ASP.NET實(shí)現(xiàn)上傳Excel功能
- ASP.NET保存PDF、Word和Excel文件到數(shù)據(jù)庫(kù)
- ASP.NET Core 導(dǎo)入導(dǎo)出Excel xlsx 文件實(shí)例
- ASP.NET MVC使用EPPlus,導(dǎo)出數(shù)據(jù)到Excel中
- asp.net DataTable導(dǎo)出Excel自定義列名的方法
- Asp.net實(shí)現(xiàn)直接在瀏覽器預(yù)覽Word、Excel、PDF、Txt文件(附源碼)
- ASP.Net動(dòng)態(tài)讀取Excel文件最簡(jiǎn)方法
相關(guān)文章
VB.NET生成隨機(jī)串或隨機(jī)數(shù)字的方法總結(jié)
本篇文章主要介紹了VB.NET生成隨機(jī)串或隨機(jī)數(shù)字的方法,具有一定的參考價(jià)值,有需要的可以了解一下。2016-11-11在ASP.NET中,設(shè)置Session的過期時(shí)間的方法
在ASP.NET中,設(shè)置Session的過期時(shí)間的方法,需要的朋友可以參考下2012-12-12ASP.NET MVC5+EF6+EasyUI 后臺(tái)管理系統(tǒng)(81)-數(shù)據(jù)篩選(萬(wàn)能查詢)實(shí)例
本篇文章主要介紹了ASP.NET MVC5+EF6+EasyUI 后臺(tái)管理系統(tǒng)(81)-數(shù)據(jù)篩選(萬(wàn)能查詢) ,具有一定的參考價(jià)值,有興趣的可以了解一下。2016-12-12.Net基于MVC4 Web Api輸出Json格式實(shí)例
這篇文章主要介紹了.Net基于MVC4 Web Api輸出Json格式的實(shí)現(xiàn)方法,實(shí)例講述了Global中json的操作與XML的處理等技巧,需要的朋友可以參考下2014-10-10ASP.NET中MVC使用AJAX調(diào)用JsonResult方法并返回自定義錯(cuò)誤信息
這篇文章主要介紹了ASP.NET中MVC使用AJAX調(diào)用JsonResult方法并返回自定義錯(cuò)誤信息的相關(guān)資料,需要的朋友可以參考下2014-11-11C#調(diào)用動(dòng)態(tài)unlha32.dll解壓Lha后綴的打包文件分享
這篇文章介紹了,C#調(diào)用動(dòng)態(tài)unlha32.dll解壓Lha后綴的打包文件,有需要的朋友可以參考一下2013-09-09ASP.NET CORE學(xué)習(xí)教程之自定義異常處理詳解
這篇文章主要給大家介紹了關(guān)于ASP.NET CORE學(xué)習(xí)教程之自定義異常處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01visual studio 2015+opencv2.4.13配置教程
這篇文章主要為大家詳細(xì)介紹了visual studio 2015+opencv2.4.13配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11詳解.Net中字符串不變性與相等判斷的特殊場(chǎng)景
本文主要介紹了.Net中字符串不變性與相等判斷的特殊場(chǎng)景,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04