using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data;
namespace StrongUnion.PaymentSystem.Model { public class ToExcel { /// <summary> /// 輸出excel格式報(bào)表 /// </summary> /// <param name="ds">數(shù)據(jù)源</param> /// <param name="startTime">開(kāi)始時(shí)間</param> /// <param name="endTime">結(jié)束時(shí)間</param> /// <param name="Titles">主標(biāo)題</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)計(jì)日期:" + 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; } } }
|