国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C# 操作EXCEL(C#中的數據導出EXCEL)

2019-11-17 04:03:12
字體:
來源:轉載
供稿:網友
今天開發項項目剛好要用到一個導出Excel的功能,在網上找了很久,就是沒有一個合適的,于是我自己寫了一個通用的類,希望對大家也有所幫助。

view plaincopy to clipboardPRint?
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
using System;   
using System.Collections.Generic;   
using System.Text;   
using System.Data;   
using System.IO;   
using System.Web;   
using Microsoft.Office.Interop.Excel;   
/*  
* 開發人員:小笨蛋  
* 時間:2009年11月17日  
* 功能:將數據導出Excel   
*   
*/  
namespace XT.LiTree.Logic   
{   
    public class ExcelExport   
    {   
        /// <summary>   
        /// 直接導出Excel   
        /// </summary>   
        /// <param name="ds">數據源DataSet</param>   
        /// <param name="fileName">保存文件名(例如:E:/a.xls)</param>   
        /// <returns></returns>   
        public bool DoExport(DataSet ds, string fileName)   
        {   
            if (ds.Tables.Count == 0 || fileName == string.Empty)   
            {   
                return false;   
            }   
            application excel = new ApplicationClass();   
            int rowindex = 1;   
            int colindex = 0;   
            Workbook work = excel.Workbooks.Add(true);   
            //Worksheet sheet1 = (Worksheet)work.Worksheets[0];   
            System.Data.DataTable table = ds.Tables[0];   
            foreach (DataColumn col in table.Columns)   
            {   
                colindex++;   
                excel.Cells[1, colindex] = col.ColumnName;   
            }   
            foreach (DataRow row in table.Rows)   
            {   
                rowindex++;   
                colindex = 0;   
                foreach (DataColumn col in table.Columns)   
                {   
                    colindex++;   
                    excel.Cells[rowindex, colindex] = row[col.ColumnName].ToString();   
                }   
            }   
            excel.Visible = false;   
            //((Worksheet)work.Sheets[0]).Name = "sss";   
            excel.ActiveWorkbook.SaveAs(fileName, XlFileFormat.xlExcel9795, null, null, false, false, XlSaveAsaccessMode.xlNoChange, null, null, null, null, null);   
            excel.Quit();   
            excel = null;   
            GC.Collect();   
            return true;   
        }   
        /// <summary>   
        /// 直接導出Excel   
        /// </summary>   
        /// <param name="ds">數據源DataSet</param>   
        /// <param name="columns">列名數組,允許為空(columns=null),為空則表使用默認數據庫列名 </param>   
        /// <param name="fileName">保存文件名(例如:E:/a.xls)</param>   
        /// <returns></returns>   
        public bool DoExport(DataSet ds, string[] columns, string fileName)   
        {   
            if (ds.Tables.Count == 0 || fileName == string.Empty)   
            {   
                return false;   
            }   
            Application excel = new ApplicationClass();   
            int rowindex = 1;   
            int colindex = 0;   
            Workbook work = excel.Workbooks.Add(true);   
            //Worksheet sheet1 = (Worksheet)work.Worksheets[0];   
            System.Data.DataTable table = ds.Tables[0];   
            if (columns != null)   
            {   
                for (int i = 0; i < columns.Length; i++)   
                {   
                    colindex++;   
                    if (columns[i] != null && columns[i] != "")   
                    {   
                        excel.Cells[1, colindex] = columns[i];   
                    }   
                    else  
                    {   
                        excel.Cells[1, colindex] = table.Columns[i].ColumnName;   
                    }   
                }   
            }   
            else  
            {   
                foreach (DataColumn col in table.Columns)   
                {   
                    colindex++;   
                    excel.Cells[1, colindex] = col.ColumnName;   
                }   
            }   
            foreach (DataRow row in table.Rows)   
            {   
                rowindex++;   
                colindex = 0;   
                foreach (DataColumn col in table.Columns)   
                {   
                    colindex++;   
                    excel.Cells[rowindex, colindex] = row[col.ColumnName].ToString();   
                }   
            }   
            excel.Visible = false;   
            //((Worksheet)work.Sheets[0]).Name = "sss";   
            excel.ActiveWorkbook.SaveAs(fileName, XlFileFormat.xlExcel9795, null, null, false, false, XlSaveAsAccessMode.xlNoChange, null, null, null, null, null);   
            excel.Quit();   
            excel = null;   
            GC.Collect();   
            return true;   
        }   
                           
        /// <summary>   
        /// 直接導出Excel   
        /// </summary>   
        /// <param name="sql">SQL查詢語句</param>   
        /// <param name="columns">列名數組</param>   
        /// <param name="fileName">保存文件名(例如:E:/a.xls)</param>   
        /// <returns></returns>   
        public bool DoExport(string sql, string[] columns, string fileName)   
        {   
            Dao.DataBase db = new XT.LiTree.Dao.DataBase();   
            DataSet ds = db.GetDS(sql);   
            if (ds.Tables.Count == 0 || fileName == string.Empty)   
            {   
                return false;   
            }   
            Application excel = new ApplicationClass();   
            int rowindex = 1;   
            int colindex = 0;   
            Workbook work = excel.Workbooks.Add(true);   
            //Worksheet sheet1 = (Worksheet)work.Worksheets[0];   
            System.Data.DataTable table = ds.Tables[0];   
            if (columns != null)   
            {   
                for (int i = 0; i < columns.Length; i++)   
                {   
                    colindex++;   
                    if (columns[i] != null && columns[i] != "")   
                    {   
                        excel.Cells[1, colindex] = columns[i];   
                    }   
                    else  
                    {   
                        excel.Cells[1, colindex] = table.Columns[i].ColumnName;   
                    }   
                }   
            }   
            else  
            {   
                foreach (DataColumn col in table.Columns)   
                {   
                    colindex++;   
                    excel.Cells[1, colindex] = col.ColumnName;   
                }   
            }   
            foreach (DataRow row in table.Rows)   
            {   
                rowindex++;   
                colindex = 0;   
                foreach (DataColumn col in table.Columns)   
                {   
                    colindex++;   
                    excel.Cells[rowindex, colindex] = row[col.ColumnName].ToString();   
                }   
            }   
            excel.Visible = false;   
            //((Worksheet)work.Sheets[0]).Name = "sss";   
            excel.ActiveWorkbook.SaveAs(fileName, XlFileFormat.xlExcel9795, null, null, false, false, XlSaveAsAccessMode.xlNoChange, null, null, null, null, null);   
            excel.Quit();   
            excel = null;   
            GC.Collect();   
            return true;   
        }   
        /// <summary>   
        /// 通過流導出Excel   
        /// </summary>   
        /// <param name="ds">數據源DataSet</param>   
        /// <param name="fileName">保存文件名(例如:a.xls)</param>   
        /// <returns></returns>   
        public bool StreamExport(DataSet ds, string fileName)   
        {   
            if (ds.Tables.Count == 0 || fileName == string.Empty)   
            {   
                return false;   
            }   
            System.Data.DataTable dt = ds.Tables[0];   
            StringBuilder content = new StringBuilder();   
            StringBuilder strtitle = new StringBuilder();   
            content.Append("<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>");   
            content.Append("<head><title></title><meta http-equiv='Content-Type' content=/"text/html; charset=gb2312/"></head><body><table x:str cellspacing='0' rules='all' border='1' id='title1' style="border-collapse:collapse;" mce_style="border-collapse:collapse;">");   
            content.Append("<tr>");   
            for (int j = 0; j < dt.Columns.Count; j++)   
            {   
                content.Append("<td>" + dt.Columns[j].ColumnName + "</td>");   
            }   
            content.Append("</tr>/n");   
            for (int j = 0; j < dt.Rows.Count; j++)   
            {   
                content.Append("<tr>");   
                for (int k = 0; k < dt.Columns.Count; k++)   
                {   
                    content.Append("<td>" + dt.Rows[j][k].ToString() + "</td>");   
                }   
                content.Append("</tr>/n");   
            }   
            content.Append("</table></body></html>");   
            content.Replace(" ", "");   
            //fileContent = (byte[])System.Text.Encoding.Default.GetBytes(content.ToString());       
            //System.Web.UI.WebControls.   
            System.Web.HttpContext.Current.Response.Clear();   
            System.Web.HttpContext.Current.Response.Buffer = true;   
            System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";   
            System.Web.HttpContext.Current.Response.Charset = "GB2312";   
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");   
            System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);//HttpUtility.UrlEncode(fileName));   
            //            HttpUtility.UrlEncode(fileName,Encoding.UTF8);   
            //System.Web.HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.Default;   
            System.Web.HttpContext.Current.Response.Write(content.ToString());   
            System.Web.HttpContext.Current.Response.End();   
            return true;   
        }   
        /// <summary>   
        /// 通過流導出Excel   
        /// </summary>   
        /// <param name="ds">數據源DataSet</param>   
        /// <param name="columns">列名數組,允許為空(columns=null),為空則表使用默認數據庫列名</param>   
        /// <param name="fileName"></param>   
        /// <returns></returns>   
        public bool StreamExport(DataSet ds, string[] columns, string fileName)   
        {   
            if (ds.Tables.Count == 0 || fileName == string.Empty)   
            {   
                return false;   
            }   
            System.Data.DataTable dt = ds.Tables[0];   
            StringBuilder content = new StringBuilder();   
            StringBuilder strtitle = new StringBuilder();   
            content.Append("<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>");   
            content.Append("<head><title></title><meta http-equiv='Content-Type' content=/"text/html; charset=gb2312/"></head><body><table x:str cellspacing='0' rules='all' border='1' id='title1' style="border-collapse:collapse;" mce_style="border-collapse:collapse;">");   
            content.Append("<tr>");   
            if (columns != null)   
            {   
                for (int i = 0; i < columns.Length; i++)   
                {   
                    if (columns[i] != null && columns[i] != "")   
                    {   
                        content.Append("<td>" + columns[i] + "</td>");   
                    }   
                    else  
                    {   
                        content.Append("<td>" + dt.Columns[i].ColumnName + "</td>");   
                    }   
                }   
            }   
            else  
            {   
                for (int j = 0; j < dt.Columns.Count; j++)   
                {   
                    content.Append("<td>" + dt.Columns[j].ColumnName + "</td>");   
                }   
            }   
            content.Append("</tr>/n");   
            for (int j = 0; j < dt.Rows.Count; j++)   
            {   
                content.Append("<tr>");   
                for (int k = 0; k < dt.Columns.Count; k++)   
                {   
                    content.Append("<td>" + dt.Rows[j][k].ToString() + "</td>");   
                }   
                content.Append("</tr>/n");   
            }   
            content.Append("</table></body></html>");   
            content.Replace(" ", "");   
            //fileContent = (byte[])System.Text.Encoding.Default.GetBytes(content.ToString());       
            //System.Web.UI.WebControls.   
            System.Web.HttpContext.Current.Response.Clear();   
            System.Web.HttpContext.Current.Response.Buffer = true;   
            System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";   
            System.Web.HttpContext.Current.Response.Charset = "GB2312";   
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");   
            System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);//HttpUtility.UrlEncode(fileName));   
            //            HttpUtility.UrlEncode(fileName,Encoding.UTF8);   
            //System.Web.HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.Default;   
            System.Web.HttpContext.Current.Response.Write(content.ToString());   
            System.Web.HttpContext.Current.Response.End();   
            return true;   
        }   
        /// <summary>   
        /// 通過流導出Excel   
        /// </summary>   
        /// <param name="ds">數據源DataSet</param>   
        /// <param name="columns">列名數組,允許為空(columns=null),為空則表使用默認數據庫列名</param>   
        /// <param name="fileName"></param>   
        /// <returns></returns>   
        public bool StreamExport(string sql, string[] columns, string fileName)   
        {   
            Dao.DataBase db = new XT.LiTree.Dao.DataBase();   
            DataSet ds = db.GetDS(sql);   
            if (ds.Tables.Count == 0 || fileName == string.Empty)   
            {   
                return false;   
            }   
            System.Data.DataTable dt = ds.Tables[0];   
            StringBuilder content = new StringBuilder();   
            StringBuilder strtitle = new StringBuilder();   
            content.Append("<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>");   
            content.Append("<head><title></title><meta http-equiv='Content-Type' content=/"text/html; charset=gb2312/"></head><body><table x:str cellspacing='0' rules='all' border='1' id='title1' style="border-collapse:collapse;" mce_style="border-collapse:collapse;">");   
            content.Append("<tr>");   
            if (columns != null)   
            {   
                for (int i = 0; i < columns.Length; i++)   
                {   
                    if (columns[i] != null && columns[i] != "")   
                    {   
                        content.Append("<td>" + columns[i] + "</td>");   
                    }   
                    else  
                    {   
                        content.Append("<td>" + dt.Columns[i].ColumnName + "</td>");   
                    }   
                }   
            }   
            else  
            {   
                for (int j = 0; j < dt.Columns.Count; j++)   
                {   
                    content.Append("<td>" + dt.Columns[j].ColumnName + "</td>");   
                }   
            }   
            content.Append("</tr>/n");   
            for (int j = 0; j < dt.Rows.Count; j++)   
            {   
                content.Append("<tr>");   
                for (int k = 0; k < dt.Columns.Count; k++)   
                {   
                    content.Append("<td>" + dt.Rows[j][k].ToString() + "</td>");   
                }   
                content.Append("</tr>/n");   
            }   
            content.Append("</table></body></html>");   
            content.Replace(" ", "");   
            //fileContent = (byte[])System.Text.Encoding.Default.GetBytes(content.ToString());       
            //System.Web.UI.WebControls.   
            System.Web.HttpContext.Current.Response.Clear();   
            System.Web.HttpContext.Current.Response.Buffer = true;   
            System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";   
            System.Web.HttpContext.Current.Response.Charset = "GB2312";   
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");   
            System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);//HttpUtility.UrlEncode(fileName));   
            //            HttpUtility.UrlEncode(fileName,Encoding.UTF8);   
            //System.Web.HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.Default;   
            System.Web.HttpContext.Current.Response.Write(content.ToString());   
            System.Web.HttpContext.Current.Response.End();   
            return true;   
        }   
    }   
}  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 星子县| 牟定县| 调兵山市| 蓬莱市| 越西县| 芒康县| 准格尔旗| 会东县| 黄浦区| 精河县| 南平市| 南和县| 新和县| 郎溪县| 德昌县| 崇礼县| 潮州市| 金坛市| 北票市| 怀远县| 西宁市| 上饶县| 繁峙县| 普定县| 定陶县| 普宁市| 富裕县| 吴堡县| 达州市| 石景山区| 安多县| 东乡族自治县| 通辽市| 府谷县| 无极县| 大港区| 乌鲁木齐市| 横峰县| 平利县| 平凉市| 秭归县|