/// <summary> /// DataTable to markdown convertor /// </summary> /// <param name="table"></param> /// <returns></returns> public static string htmlTable(this DataTable table, String table_tag_attribute = "", Boolean printExtraLines = true) { String headingline = ""; String dcCaption = ""; List <DataColumn> skipEscape = new List <DataColumn>(); dataValueFormatDictionary dcfs = new dataValueFormatDictionary(); StringBuilder sb = new StringBuilder(); if (!table_tag_attribute.isNullOrEmpty()) { sb.AppendLine("<table class=\"" + table_tag_attribute + "\" >"); } else { sb.AppendLine("<table " + table_tag_attribute + ">"); } sb.AppendLine("<tbody>"); headingline = "<tr>"; foreach (DataColumn dc in table.Columns) { dcCaption = dc.GetHeading(); if (dcCaption.StartsWith("_")) { skipEscape.Add(dc); dcCaption = dcCaption.TrimStart('_'); dc.Caption = dcCaption; } //dataValueFormatInfo dcf = new dataValueFormatInfo(dc); //if (dcf.directAppend) skipEscape.Add(dc); //dcfs.Add(dc.ColumnName, dcf); headingline += "<td>" + dcCaption + "</td>"; } headingline += "</tr>"; sb.AppendLine(headingline); //output = output + Environment.NewLine; foreach (DataRow dr in table.Rows) { sb.Append("<tr>"); foreach (DataColumn dc in table.Columns) { sb.Append("<td>"); String format = dc.GetFormat(); if (format != "") { } String content = dr[dc].toStringSafe("", format); sb.Append(content); sb.Append("</td>"); } sb.Append("</tr>"); } sb.AppendLine("</tbody>"); sb.AppendLine("</table>"); if (printExtraLines) { if (table.ExtraLinesCount() > 0) { sb.AppendLine("<div><p>"); var lines = table.GetExtraDesc(); foreach (String ln in lines) { sb.AppendLine(ln + "<br/>"); } sb.AppendLine("<p></div>"); } } return(sb.ToString()); }
/// <summary> /// DataTable to markdown convertor /// </summary> /// <param name="table"></param> /// <returns></returns> public static string markdownTable(this DataTable table, Boolean prittyOutput = true) { String output = ""; String underline = "|"; String headingline = "|"; String dcCaption = ""; List <DataColumn> skipEscape = new List <DataColumn>(); dataValueFormatDictionary dcfs = new dataValueFormatDictionary(); String sep = "|"; foreach (DataColumn dc in table.Columns) { dcCaption = dc.GetHeading(); if (dcCaption.StartsWith("_")) { skipEscape.Add(dc); dcCaption = dcCaption.TrimStart('_'); dc.Caption = dcCaption; } dataValueFormatInfo dcf = new dataValueFormatInfo(dc); if (dcf.directAppend) { skipEscape.Add(dc); } dcfs.Add(dc.ColumnName, dcf); Tuple <String, String> adds = getTableColumnHead(dcf.position, dcCaption); headingline = headingline + adds.Item1; underline = underline + adds.Item2; } if (prittyOutput) { table = table.Copy(); table.setColumnWidths(100); } underline = underline + "|"; headingline = headingline + "|"; output = output + headingline.Replace("||", "|") + Environment.NewLine; output = output + underline.Replace("||", "|") + Environment.NewLine; //output = output + Environment.NewLine; foreach (DataRow dr in table.Rows) { String rowline = "|"; foreach (DataColumn dc in table.Columns) { String content = dc.markdownFieldForColumn(dr, skipEscape.Contains(dc), dcfs[dc.ColumnName]); content = content.Replace(Environment.NewLine, ""); rowline = rowline.add(content, "|"); // imbSciStringExtensions.add(rowline, content, "|"); } rowline = rowline + "|" + Environment.NewLine; output = output + rowline; } if (table.ExtraLinesCount() > 0) { output += Environment.NewLine; var lines = table.GetExtraDesc(); foreach (String ln in lines) { output = output + "> " + ln + Environment.NewLine; } output += Environment.NewLine; } return(output); }