通过rtf字符串往richTextBox中添加带有文字的表格

时间:2022-10-30 12:38:32

在做一个试卷生成系统的时候遇到了一个需求,需要往richTextBox中添加带有固定格式的表格,表格中还有文字,明显用报表只能实现表格的动态添加,无法动态往表格里添加文字,于是乎就只能通过rtf编码来实现。下面粘出代码,及提示,给需要的人一点帮助!


  string str = "{\\rtf1\\ansi\\ansicpg936\\deff0\\deflang1033\\deflangfe2052{\\fonttbl{\\f0\\fnil\\fprq2\\fcharset134";
            str += "\\'cb\\'ce\\'cc\\'e5;}{\\f1\\fnil\\fcharset134 \\'cb\\'ce\\'cc\\'e5;}}\\viewkind4\\uc1\\trowd\\trgaph108\\trleft-108";
            str += "\\trbrdrt\\brdrs\\brdrw10 \\trbrdrl\\brdrs\\brdrw10 \\trbrdrb\\brdrs\\brdrw10 \\trbrdrb\\brdrs\\brdrw10 ";


            //下面几行是表格的列   以及宽度    宽度有一定规律:比如只有三行,最后一行为4000,第二行为2000,第一行为1000,那么    第三行的宽度为2000 第二和第一为1000。这个规律是试出来的。
            str += "\\clbrdrt\\brdrw15\\brdrs\\clbrdrl\\brdrw15\\brdrs\\clbrdrb\\brdrw15\\brdrs\\clbrdrr\\brdrw15\\brdrs \\cellx1000";
            str += "\\clbrdrt\\brdrw15\\brdrs\\clbrdrl\\brdrw15\\brdrs\\clbrdrb\\brdrw15\\brdrs\\clbrdrr\\brdrw15\\brdrs \\cellx2000";


            str += "\\clbrdrt\\brdrw15\\brdrs\\clbrdrl\\brdrw15\\brdrs\\clbrdrb\\brdrw15\\brdrs\\clbrdrr\\brdrw15\\brdrs \\cellx3000";
            str += "\\clbrdrt\\brdrw15\\brdrs\\clbrdrl\\brdrw15\\brdrs\\clbrdrb\\brdrw15\\brdrs\\clbrdrr\\brdrw15\\brdrs \\cellx4000";
            str += "\\clbrdrt\\brdrw15\\brdrs\\clbrdrl\\brdrw15\\brdrs\\clbrdrb\\brdrw15\\brdrs\\clbrdrr\\brdrw15\\brdrs \\cellx10000";
            //下面的cell 表示单元格  有几row就有几行 能添加文字
            str += "\\pard\\intbl\\kerning2\\f0\\fs29 河粉\\cell 数据\\cell 电风扇\\cell 发送到\\cell 发送到\\row\\intbl\\cell\\cell\\cell\\row\\intbl\\cell\\cell\\cell\\cell 发送到\\row\\pard\\lang2052\\kerning0\\f1\\fs18\\par}";

     

           richTextBox1.rtf=str.ToString();

这些编码都是调试好了的 ,拿去看看规律直接就能用。

通过rtf字符串往richTextBox中添加带有文字的表格