【发布时间】:2014-04-01 07:37:10
【问题描述】:
我在 C# 中完成了所有这些操作
我创建了一个如下表
Company Name Gender
cmc sindhu f
cmc shilpa f
cmc srikar m
但我需要的是....我希望“cmc”在所有名称中只出现一次。
Company Name Gender
cmc sindhu f
shilpa f
srikar m
我如何使用rowspan 和colspan 来实现这一点?我的代码如下:
public class sample
{
static void Main(string[] args)
{
DataTable table=new DataTable();
table.Columns.Add("Company", typeof(string));
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Gender", typeof(string));
table.Rows.Add("cmc", "sindhu", "f");
table.Rows.Add("cmc", "shilpa", "f");
table.Rows.Add("cmc", "srikar", "m");
string htmltable;
string htmlstring;
htmltable=ConvertDataTableToHtml(table);
string filename = "HTML File.html";
StreamWriter swXLS = new StreamWriter( "c:\\"+ filename);
swXLS.Write(htmltable.ToString());
swXLS.Close();
}
public static string ConvertDataTableToHtml(DataTable targetTable)
{
string htmlString = "";
if (targetTable == null)
{
throw new System.ArgumentNullException("targetTable");
}
StringBuilder htmlBuilder = new StringBuilder();
//Create Top Portion of HTML Document
htmlBuilder.AppendLine("<html>");
htmlBuilder.AppendLine("<head>");
htmlBuilder.AppendLine("</head>");
htmlBuilder.AppendLine("<body>");
htmlBuilder.AppendLine("<table border='1px' cellpadding='5' cellspacing='0'>");
//Create Header Row
htmlBuilder.Append("<span style='font-size: small;font-weight:bold;'></span>\n");
htmlBuilder.AppendLine("\n<tr align='left' valign='top'>");
foreach (DataColumn targetColumn in targetTable.Columns)
{
htmlBuilder.Append("<td align='left' valign='top'>");
htmlBuilder.Append("<b>");
htmlBuilder.Append(targetColumn.ColumnName);
htmlBuilder.Append("</b>");
htmlBuilder.Append("</td>\n");
}
htmlBuilder.AppendLine("</tr>");
//Create Data Rows
foreach (DataRow myRow in targetTable.Rows)
{
htmlBuilder.AppendLine("\n<tr align='left' valign='top'>");
foreach (DataColumn targetColumn in targetTable.Columns)
{
htmlBuilder.Append("<td align='left' valign='top'>");
htmlBuilder.Append(myRow[targetColumn.ColumnName].ToString());
htmlBuilder.Append("</td>\n");
}
//htmlBuilder.Append("</td>");
htmlBuilder.AppendLine("</tr>\n");
}
//Create Bottom Portion of HTML Document
htmlBuilder.AppendLine("</table>");
htmlBuilder.AppendLine("</body>");
htmlBuilder.AppendLine("</html>");
//Create String to be Returned
htmlString = htmlBuilder.ToString();
return htmlString;
}
}
【问题讨论】: