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">數(shù)據(jù)源</param>
/// <param name="startTime">開始時間</param>
/// <param name="endTime">結(jié)束時間</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'> 統(tǒng)計日期:" + 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;
}
}
}