分享

C# 导出Excel

 仰望//45度微笑 2012-05-16

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace StrongUnion.PaymentSystem.Model
{
    public class ToExcel
    {
        /// <summary>
        /// 输出excel格式报表
        /// </summary>
        /// <param name="ds">数据源</param>
        /// <param name="startTime">开始时间</param>
        /// <param name="endTime">结束时间</param>
        /// <param name="Titles">主标题</param>
        /// <returns></returns>
        public static StringBuilder GetExcel(DataSet ds, string startTime, string endTime, string Titles)
        {
             strDS(ds);
             return HTMLToExcel(ds, startTime, endTime, Titles);
        }

        private static StringBuilder HTMLToExcel(DataSet ds, string startTime, string endTime, string n)
        {

            StringBuilder sb = new StringBuilder();
            int TableCellNum = ds.Tables[1].Columns.Count;
            sb.Append("<table border='1' cellpadding='0' ><tr><td  colspan='" + TableCellNum + "'>");
            sb.Append("<p align='center'>" + n + "</p></td>");
            sb.Append("<tr><td colspan='" + TableCellNum + "'><p align='center'> 统计日期:" + startTime + " 至 " + endTime + " ");
            sb.Append("</p></td></tr>");
            sb.Append("<tr>");
            for (int o = 0; o < TableCellNum; o++)
            {
                sb.Append("<td width='23%' scope='col'><p align='center'><strong>" + ds.Tables[1].Columns[o].ColumnName + "</strong></p></td>");
            }
            sb.Append("</tr>");
            for (int i = 0; i < ds.Tables[1].Rows.Count; i++)
            {
                sb.Append("<tr>");
                for (int k = 0; k < TableCellNum; k++)
                {
                    sb.Append("<td width='23%' scope='col'><p align='center'>" + ds.Tables[1].Rows[i][k].ToString() + "</p></td>");
                }
                sb.Append("</tr>");
            }
            sb.Append("</table>");
            return sb;
        }

        private static void strDS(DataSet ds)
        {
            DataTable dt = new DataTable();
            if (ds == null)
            { return; }
            else
            {
                if (ds.Tables[0].Rows.Count == 0)
                {
                    for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
                    {
                        dt.Columns.Add(new DataColumn(ds.Tables[0].Columns[i].ColumnName, typeof(string)));
                    }
                }
                else
                {
                    for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
                    {
                        dt.Columns.Add(new DataColumn(ds.Tables[0].Columns[i].ColumnName, typeof(string)));
                    }
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        dt.Rows.Add(dt.NewRow());
                    }
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
                        {
                            dt.Rows[i][j] = ds.Tables[0].Rows[i][j].ToString();
                        }
                    }

                }
                ds.Tables.Add(dt);
            }
            return;
        }
    }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多