Пример #1
0
        /// <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());
        }
Пример #2
0
        /// <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);
        }