一段中文每一个字的excel第一个字母大写的大写,不知道什么意思求解

英文标题究竟哪些单词要首字母大写,word单词首字母大写,单词首字母大写,英文单词首..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
英文标题究竟哪些单词要首字母大写
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口富文本格式_百度百科
关闭特色百科用户权威合作手机百科
收藏 查看&富文本格式
富文本格式(Rich Text Format, 一般简称为RTF)是由开发的跨平台文档格式。大多数的都能读取和保存RTF文档。RTF是Rich TextFormat的缩写,意即多文本格式。这是一种类似DOC格式(Word文档)的文件,有很好的兼容性,使用Windows“附件”中的“”就能打开并进行编辑。RTF是一种非常流行的文件结构,很多文字都支持它。一般的格式设置,比如和段落设置,页面设置等等信息都可以存在RTF格式中,它能在一定程度上实现word与wps文件之间的互访。外文名Rich Text Format开&&&&发
一个文件由未格式化文本、控制字、控制符号和组组成。为了更容易的转换,一个标准的RTF文件应该仅包含7位ASCII码,RTF文件没有限制文件的行的最大长度。(再议:maximun line length是指行的数还是指文档的行数?)
An RTF file consists of unformatted text, control words, control symbols, and groups. For ease of transport, a standard RTF file can consist of only 7-bit ASCII characters. (Converters that communicate with Microsoft Word for Windows or Microsoft Word for the Macintosh should expect 8-bit characters.) There is no set maximum line length for an RTF file.
控制字是一种特殊的RTF用来标记打印机控制符的格式化命令,也是程序用来管理文档样式的格式化信息。(再议:措辞不好)一个控制字不能超过32个,一个控制字类似以下形式:
\LetterSequence&Delimiter&
注意:每个控制字是以开始的。
LetterSequence由小写字母(a-z)组成。RTF是大小写敏感的。
一个RTF控制字的结束由分隔符标记,以下可以作为分隔符: 一个空格。在这种情况下,空格作为关键字的一部分。 一个数字或(-), 意味着它是一个数字参数。这数字序列的长度由其后的一个空格或除了字母和数字的其他划定。这个参数可以是正数或者负数,它的取值范围通常是从-3。然而,Word的取值范围可以到达由-3。Word 允许关键字的小数字参数取值范围在-2,147,483,648到2,147,483,648(特别的,\bin, \revdttm,和一些图像属性)。(再议:a small number of keywords不知所指,应该指这些二进制文件吧。)一个RTF解析器应该能够将一个随意写出的数字字符串转换为一个关键字的合法值。如果一个数值参数紧跟着控制字,这个参数就是控制字的一部分。这时,控制字通过一个空格或非字母数字字符分隔出来,和分隔其他控制字的方式相同。 除了字母和数字的其他字符。这种情况下,此分隔结束控制字,而它并不属于控制字的一部分。如果是第一种情况,空格并不会出现在文档中。分隔符之后的所有字符,包括空格,将被写入文档。基于这个理由,你应该尽在需要的情况下使用空格,不要只是将空格用在分隔RTF代码。RTF 文件内容一个 RTF 文件符合以下语法:&File&'{' &header& &document& '}' 本语法是标准的RTF语法,任何RTF查看器都应该可以正确的解释以此语法格式写出的RTF文件。有必要重申的是:RTF查看器没有必要包含所有的控制字,但它必须能够无害的忽略它不知道(或者未使用)的控制字,并且必须能正确的略过被控制字符号标记的部分。然而,生成RTF的有可能并没完全符合这个语法规范,同样地,RTF查看器应该有足够能力去处理一些细微变更的控制字。虽然如此,如果一个生成RTF的符合本规范,那么任何一个正确的RTF查看器都应该能够完美的解释它。RTF是一种非常流行的文件结构,很多文字都支持它,VB等开发工具甚至还提供了Richtxtbox的控件。编写通用工具的程序员应该考虑在自己的中加入读写RTF文件的功能,这样就需要对RTF的结构有充分的了解。而现在最重要的信息发布手段莫过于WWW了,在编辑中提供RTF到HTML的转换也是程序员应该考虑的事情。尽管WORD中已经有这个功能,但不能因此就对您的顾客说:“先用我的程序存成RTF,然后再用WORD......”。下面将对RTF文件结构分析及其应用进行讨论。的结构并不复杂,但内容繁多,本文不可能一一说明,只能从总体上讨论一下(如果想阅读详尽的RTF文档,则可在Internet上寻找或与笔者联系。)每个RTF文件都是一个文本文件,显示时由RTF格式化。文件开始处是{\,它作为RTF文件的标志是必不可少的,RTF根据它来判断一个文件是否为RTF格式。然后是文件头和正文,文件头包括表、文件表、颜色表等几个,正文中的字体、表格的风格就是根据文件头的信息来格式化的。每个表用一对大括号括起来,当中包含了很多用字符“\”开始的命令。例如,某个颜色表如下: {\\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;} 开始时用\colortbl标明大括号内是颜色表,接着是\red0\green0\blue0,登记了一种颜色,这种颜色的红绿蓝分量都为0。其它表依此类推。文件头之后是正文,正文由版面格式化命令、文字和各种特殊命令组成。其中只有特殊命令用大括号括起来,而版面格式化命令和文字是“开放式”的,从而把文字和命令分离。文件结束时有一个“}”,和第一个“{”对应。在整个文件中,“}”和“{”必须一一对应。这种格式是RTF和转换器算法的基础。 RTF格式还有一个特别之处,就是有些字符在命令中有特殊的含义,所以当它们作为文本出现时需要在它们的前面加一个“\”,例如“\”本身就要表示为“\\”。事实上,这种形式在大多数编程语言中是很常见的。本节介绍的算法虽然是针对RTF的读写,但也是一般文件过滤器通用的方法,适用于各种格式文件之间的转换。具体来说就是把各种文件都转换成一种中间格式,再根据要求进行显示或转换。其中有个原则是一定要遵守的:程序必须能过滤掉不认识的格式。各种文件都有其特殊的格式,在转换过程中不可避免会出现格式损失的现象,在算法中要考虑这种情况。对于RTF这类格式化文本文件来说,最重要的是要正确地显示或转换文件的大小、颜色、等风格。因此,在程序中应该用一个把这些信息存起来,这个结构就是所谓的中间格式,怎样规定悉听尊便。以下是其流程图: 三、难点分析 在开发过程中我们遇到了不少问题,其中有两个问题特别有意思。 第一个问题是中文的表示方式。在RTF中中文用命令的形式表示:“\'内码”。内码就是汉字机内码。不过,请注意:RTF是文本文件,内码是用ASCII码来储存的,必须把它转换成数字才能使用。例如,“电子与电脑”在RTF中的形式是: \'b5\'e7\'d7\'d3\'d3\'eb\'b5\'e7\'c4\'d4 第二个是图片的问题,这也是本文的重点。RTF中图片以两种方式存在:第一种方式是直接嵌入,以{\pict开始;第二种方式是作为OLE对象嵌入,这时以{\object开始。当RTF处理器能直接使用OLE时,RTF文件中提供了OLE的数据;否则,文件中直接提供图片的数据,以{\result开始。在使用中最常见的图片格式是内含DIB BITMAP的元文件(METAFILE),这种格式在SDK中没有说明,而且在RTF中是以压缩形式储存的,所以在转换时有一定困难。 四.RTF格式的扩展 最后讨论一下RTF格式的扩展。RTF格式作为一个标准应该是统一的,但在某种情况下进行扩展是必要的。最明显的例子是的WORD,它有自己独有的RTF命令。如果想使自己的在技术上占有优势,也可以通过创造新的RTF命令来实现。例如,如果你希望在中支持DHTML,则可在RTF中嵌入{\dhtml或{\java之类的命令。由于RTF有过滤不认识命令的功能,所以这样做不会影响RTF文件的通用性。一、引言
富文本格式(RTF)规范是为了便于在之间轻松转储格式化文本和图形的一种编码方法。现在,用户可以利用特定转换,在不同系统如、Windows、OS/2、Macintosh和Power Macintosh的之间转移字处理文档。RTF规范提供一种在不同的、操作环境和之间交换文本和图形的一种格式。RTF使用ANSI, PC-8, Macintosh, 或IBM PC控制文档的表示法和格式化,包括屏幕显示和打印。凭借RTF规范,不同的和不同的程序创建的文档能够在这些操作系统和之间传递。将一个格式化的文件转换为RTF文件的称为RTF书写器。RTF书写器用于分离现有文本中的程序控制信息,并且生成一个包含文本和与之相关的RTF组的新文件。将RTF文件转换成格式化文件的则称为RTF阅读器。
二、RTF基本语法RTF文件由本文、控制字、控制符和组组成。RTF文件没有限制文件的行的最大长度。控制字是RTF用来标记打印控制符和管理文档信息的一种特殊格式的命令。一个控制字最长32个。控制字的使用格式如下: \字母序列&分隔符&注意:每个控制字均以一个\开头。字母序列由a~z 的小写字母组成。控制字(或者称为关键字)通常应该不包含任何大写字母。标记RTF控制字的结束, 可以是下列各项之一:·
一个空格,这时空格是控制字的一部份。·
一个数字或连字符(-), 表示跟随的一个数值参数。该数字序列的长度由其后的一个空格或除了字母和数字的其他字符划定。这个参数可以是正数或者负数,它的取值范围通常是从-3。·
任何非字母和数字的其他字符。这种情况下,此分隔字符结束控制字,而它并不属于控制字的一部分。控制符由一个反斜线\跟随单个非字母组成。例如,\~代表一个不换行空格。控制符不需要。组由包括在({})中的文本、控制字或控制符组成。左扩符({)表示组的开始,右扩符(})表示组的结束。每个组包括文本和文本的不同属性。RTF文件也能同时包括、格式、、图形、脚注、注释(注解)、和文件尾、摘要信息、域和书签的组合,以及文档、区段、段落和的格式属性。如果包括、文件、格式、、校订标记,以及摘要信息组、文档格式属性,则他们一定要在文件的第一纯文本之前,这些组形成RTF的。如果包括组,则它应该在格式组之前。如果组未使用,可以省略。对于RTF文件的详细语法及关键字说明请参阅《Rich Text Format (RTF) Specification v1.7》,这里不作更详细的说明。三、Hello Word
国际惯例,一个Hello Word!演示例子,内容如下:{\1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fmodern\fprq6\fcharset134 \'cb\'ce\'cc\'e5;}}{\*\generator Msftedit 5.41.21.2500;}\viewkind4\uc1\pard\lang2052\f0\fs20 Hello World!\par}该文件分析如下(红色):1、文件基本属性:{\rtf1 RTF版本\ansi\ansicpg936简体中文\deff0默认0\deflang1033美国英语\deflangfe2052汉语2、字体表:{\fonttbl{\f0字体0\fmodern\fprq6字体间距为6\fcharset134GB2312国标码 \'cb\'ce\'cc\'e5;}}3、生成器信息:{\*\generator Msftedit 5.41.21.2500;}4、文档属性:\viewkind4正常视图\uc1单字节\pard默认段落属性\lang2052中国汉语\f0字体0\fs20字体大小20磅5、正文文本:Hello World!\par}文件结束注意:在RTF文件中,中文等双字节字符采用其单字节ASCII码序列表示,例如文本“宋体ABC”应该表示为:\'cb\'ce\'cc\'e5ABC,这就是为什么RTF可读性差的原因。四、文字的更高级表示掌握了基本文字表述方法后,你一定会试着进一步探索文本更高级的表示方法,如下划线、颜色、粗体、斜体等等,而这些在V1.7规范中都作了详细描述,本文只列出部分常用关键字,以供参考。l
对于表和颜色表的说明:对于我们在文档中使用的每一个字体和颜色,我们都必须在文档头的字体表和颜色表中预先定义。表定义的例子如下:{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose }Times New R}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0204}A}{\f10\fnil\fcharset2\fprq2{\*\panose }W}… …}我们在使用字体时,就可以直接指定字体表的一个索引,如:“\f1Happy”表示字体为Arial 的文本Happy。如果我们想加入其他,如“华文中宋”,那么只需要在字体表中加入该字体说明,并在需要时引用该字体索引值即可。方法为(华文中宋的ASCII串为“\'bb\'aa\'ce\'c4\'d6\'d0\'cb\'ce”):{f222\fnil\fcharset134\fprq2\'bb\'aa\'ce\'c4\'d6\'d0\'cb\'},然后通过\f222来引用该即可。颜色表定义的例子如下:{\\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192; … …}颜色表中每个颜色值采用RGB格式书写,每个颜色用分号格开,注意第一个颜色值\c0为空,表示系统默认颜色(一般为黑色)。依次为:\0、\1、\2、… …。我们在使用颜色时(如颜色)就可以指定某一个颜色索引值,如“\cf2Sunday”表示字体颜色为RGB(0,0,255)蓝色的文字Sundy。“\cb6ABC”表示背景色为RGB(255,0,0)的文字“ABC”。如果我们需要加入其他颜色值,只需要在颜色表中加入颜色定义,并通过相应的索引值来引用它即可。l
字符底纹语法如下:控制字
涵义==============================================================\chbrdr
字符边框(每边均有边框)。\chshdngN
字符阴影。参数N的值文字阴影的百分比。\chcfpatN
N是背景图案的颜色,指定文档颜色表的一个索引。\chcbpatN
N是填充色,指定文档颜色表的一个索引。\chbghoriz
指定水平线文本背景图案。\chbgvert
指定垂直线文本背景图案。\chbgfdiag
指定正向对角线文本背景图案(\\\\)。\chbgbdiag
指定反向对角线文本背景图案(\\\\)。\chbgcross
指定十字线文本背景图案。\chbgdcross
指定对角十字线文本背景图案。\chbgdkhoriz
指定粗水平线文本背景图案。\chbgdkvert
指定粗垂直线文本背景图案。\chbgdkfdiag
指定粗前斜线文本背景图案(\\\\)。\chbgdkbdiag
指定粗后斜线文本背景图案(////)。\chbgdkcross
指定粗十字线文本背景图案。\chbgdkdcross
指定粗对角十字线文本背景图案。假设我们希望得到背景为水平线、为华文中宋(字体索引为222)、颜色为红色(颜色索引为6)的文本“星期天”,则只需输入:\f222\cf6\chbghoriz\'bb\'aa\'ce\'c4\'d6\'d0\'cb\'ce 即可。l
字符下划线语法如下:
涵义=========================================================================\ul
连续的下划线。\ul0关闭所有下划线。\ulcN
下划线颜色。(注意:大写N表示一个索引数字,下同)\uld
点下划线。\uldash
短划下划线。\uldashd
点划下划线。
双点划下划线。
双下划线。
加重波浪下划线。
长划下划线。\ulnone
停止所有下划线。\ulth
粗下划线。
粗点下划线。
粗短划下划线。
\ulthdashd
粗点划下划线。
\ulthdashdd
粗双点划下划线。
\ulthldash
粗长划下划线。
\ululdbwave
双波浪下划线。
字下加下划线。
波浪下划线。 下划线语法与前面底纹的使用相同。
其他文本显示高级属性:控制字
涵义====================================================\outl
边框。\ outl 0关闭之。\scaps
小体大写字母。\ scaps 0关闭之。\shad
阴影。\ shad 0关闭之。\strike
删除线。\strike0关闭之。\striked1
双删除线。\striked0关闭之。\sub
按照信息的下标文本和缩小点的尺寸。\super
按照信息的上标文本和缩小点的尺寸。
对齐方式语法如下:控制字
涵义======================================================================\qc
居中对齐。
(默认)。
分散对齐。\qkN
使用Kashida规则调整行百分比(0-低、10-中、20-高)。
.用于泰文的分散对齐。
文本语法如下:控制字
涵义========================================================================\fiN
(默认为0)。\cufiN
采用单位的百分比的值,用以覆盖\fiN的设置,虽然它们可以设为相同值。\liN
左端(默认为0)。
从左至右段落的左端值;如果在从右至左段落则表示右端缩进值(默认为0)。\linN定义了段前空格数。
采用单位的百分比的左端值,与\linN一样,它用以覆盖\liN和\linN的设置,虽然它们可以设为相同值。
(默认为0)。
从左至右段落的右端值;如果在从右至左段落则表示左端缩进值(默认为0)。\rinN定义了段前空格数。
采用单位的百分比的右端值,与\rinN一样,它用以覆盖\riN和\rinN的设置,虽然它们可以设为相同值。
\adjustright
当文档被定义时自动调整。l
文本间距语法如下:\sbN
段后间隔(默认为0)。
段前间隔(默认为0)。\sbautoN
自动段前间隔:
0 段前间距取决于\sb。
自动段前间距(忽略\sb)。
默认为0。\saautoN
自动段后间隔:
0 段后间距取决于\sa。1 自动段后间距(忽略\sa)默认为0。
采用字符单位的百分比的段前间隔值,用以覆盖\sbN的设置,虽然它们可以设为相同值。
采用字符单位的百分比的段后间隔值,用以覆盖\saN的设置,虽然它们可以设为相同值。
行间距。如果没有使用该控制字或者使用\sl0,则行间距将根据行间字符最高值自动取值。若N为一个正值,则该值将仅仅在该值大于行间最高值时才使用(否则,使用字符最高值);分N是一个负值,即使在其小于行间字符最高值时,总是使用N的。\slmultN
多倍行间距。指出当前行间距是的倍数。该控制字只能跟在\sl后,联合作用。0
“最小”或者是“精确”的行距1
多倍行距,相对于“单倍”行距。
\nosnaplinegrid
取消对齐。
五、图片的表示方式
摸清RTF中图片的表示颇费了一番周折,下面的分析希望能够加速你的学习进程。一个RTF图片数据通常直接嵌入文件中,这些图象可以是16进制(默认的)或2进制格式。图象属于目标引用,由\pict 控制字开始。如后面的例子中将描述的,\pict关键字应在\*\shppict引用控制关键字之后。一个图象的例子如下:{\*\shppict{\pict {\*\picprop\shplid1025{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn pibFlags}{\sv 2}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw4516\pich4516\picwgoal2560\pichgoal2560\jpegblip\bliptag-{\*\blipuid d48e1d9b9c}ffd8ffeffdb0bc0a0a0b0a0a0c100c0c0c0c0c0c100c0e0f… …}}{\nonshppict {\pict \picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw4516\pich4516\picwgoal2560\pichgoal2560\wmetafile8\bliptag-\blipupi72{\*\blipuid d48e1d9b9c}0bac00ace00… …}}其分析如下(红色):{\*\shppict图片(引用){\pict图片开始属性(这个组可以省略):{\*\picprop表示这里是应用于一个内嵌图象的形状属性\shplid1025标识每个图形的唯一数值{\sp绘图对象属性定义{\sn shapeType}{\sv 75}} 图片类型为相框{\sp{\sn fFlipH}{\sv 0}} 水平翻转:False{\sp{\sn fFlipV}{\sv 0}} 垂直翻转:False{\sp{\sn pibFlags}{\sv 2}} 链接图片标志{\sp{\sn fLine}{\sv 0}}具有线条:False{\sp{\sn fLayoutInCell}{\sv 1}}允许图形定位在内部:True}绘图对象属性定义结束图片属性:\picscalex100水平缩放比例\picscaley100垂直缩放比例\piccropl0左端剪切值=0\piccropr0右端剪切值=0\piccropt0上端剪切值=0\piccropb0下端剪切值=0\picw4516图片的像素宽度\pich4516图片的像素高度\picwgoal2560图象期望宽度\pichgoal2560图象期望高度\jpegblip图片源为一个JPEG文件\bliptag图象ID标识-{\*\blipuid d48e1d9b9c}图片16进制数据:ffd8ffeffdb0bc0a0a0b0a0a0c100c0c0c0c0c0c100c0e0f}16进制图片数据结束}兼容性wMetaFile文件内容(可用省略):{\nonshppict只用于兼容,不读取{\pict图片开始\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw4516\pich4516\picwgoal2560\pichgoal2560\wmetafile8\bliptag-\blipupi72{\*\blipuid d48e1d9b9c}下面是MetaFile类型的16进制数据:0bac00ace00}MetaFile类型16进制图片数据结束}为了简化分析,我们除去所以可以省略的内容,则一副图片可以这样表示:{\*\shppict{\pict piccropl0\piccropr0\piccropt0\piccropb0\picw宽度\pich高度\picwgoal显示宽度\pichgoal显示高度\jpegblipJPEG类型\bliptag-ID值(为一个负的长整形值)下面是该图片的实际16进制数据:ffd8ffe0001… …}}六、表格基本表示方法
上面对文本和图片都进行了分析,相信你已经对RTF有了一定体会,接下来说明RTF文件中表的表示方法。表的定义稍显复杂,不过还是有规律可循的。不存在RTF表组,实际上表由段落属性来描述。一个表表现为多个表行的顺序排列。一个表行是一个由不同单元格组成的段落序列。简言之,表格由行组成,行由单元格组成。不管有多复杂的表格,它都是通过一行接一行的描述来实现的,包括表格的嵌套。表行从控制字\trowd开始,\row结束。包含在一个表行中的每个段落必须指定\intbl控制字或者从前一段落继承。一个单元内可能有多个段落;单元由单元格标志(\cell控制字)结束,行由行标志(\row控制字)结束。表行也可以被绝对定位。此时,表行的每个段落必须具有相同的定位控制字。表的属性可以从前一行继承;因此,连续的表行可以通过单一的&tbldef&来定义。一个简单表格例子如下: 1,1
2,3RTF内容如下:\trowd \irow0\irowband0\ts15\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid2113686\tbllkhdrrows\tbllklastrow\tbllkhdrcols\tbllklastcol \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2840\clshdrawnil \cellx2732\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2841\clshdrawnil \cellx5573\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2841\clshdrawnil \cellx8414\pard\plain \qj \li0\ri0\nowidctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\yts15 \fs21\lang1033\langfe2052\kerning2\loch\af0\hich\af0\dbch\af13\cgrid\langnp1033\langfenp2052 {\insrsid2113686 \hich\af0\dbch\af13\loch\f0 1,1\cell \hich\af0\dbch\af13\loch\f0 1,2\cell \hich\af0\dbch\af13\loch\f0 1,3\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs21\lang1033\langfe2052\kerning2\loch\af0\hich\af0\dbch\af13\cgrid\langnp1033\langfenp2052 {\insrsid2113686 \trowd \irow0\irowband0\ts15\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid2113686\tbllkhdrrows\tbllklastrow\tbllkhdrcols\tbllklastcol \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2840\clshdrawnil \cellx2732\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2841\clshdrawnil \cellx5573\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2841\clshdrawnil \cellx8414\row }\pard\plain \qj \li0\ri0\nowidctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\yts15 \fs21\lang1033\langfe2052\kerning2\loch\af0\hich\af0\dbch\af13\cgrid\langnp1033\langfenp2052 {\insrsid2113686 \hich\af0\dbch\af13\loch\f0 2,1\cell \hich\af0\dbch\af13\loch\f0 2,2\cell \hich\af0\dbch\af13\loch\f0 2,3\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs21\lang1033\langfe2052\kerning2\loch\af0\hich\af0\dbch\af13\cgrid\langnp1033\langfenp2052 {\insrsid2113686 \trowd \irow1\irowband1\lastrow \ts15\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid2113686\tbllkhdrrows\tbllklastrow\tbllkhdrcols\tbllklastcol \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2840\clshdrawnil \cellx2732\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2841\clshdrawnil \cellx5573\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2841\clshdrawnil \cellx8414\row }是不是很复杂?不过没关系,我们通过对其进行分段,并加入适当注释,你就会对RTF文件中的表结构一目了然。首先需要声明的是,RTF1.7规范中规定,表行的格式如下:(&tbldef& &cell&+ &tbldef& \row) | (&tbldef& &cell&+ \row) | (&cell&+ &tbldef& \row),目前Word2003采用的方式就是第一种,即“定义+内容+重复定义”,如此一来就会有很大的数据冗余,这就是为什么Word2003的一个简单文档都会很大的原因,不过为了兼容性考虑,这样处理也是必要的。其定义也由“行定义+单元格定义”组成,其中单元格定义可用重复。分析代码如下(红色):
表格行1\trowd表行1开始表格属性\trgaph108表中单元格半间距\trleft-108表的最左边位置行边框设置\trbrdrt行的上边框\brdrs单倍厚度\brdrw10线宽\trbrdrl行的左边框\brdrs单倍厚度\brdrw10线宽\trbrdrb行的下边框\brdrs单倍厚度\brdrw10线宽\trbrdrr行的右边框\brdrs单倍厚度\brdrw10线宽单元格1边框设置\clbrdrt单元格上边框\brdrw15线宽\brdrs单倍厚度\clbrdrl单元格左边框\brdrw15线宽\brdrs单倍厚度\clbrdrb单元格下边框\brdrw15线宽\brdrs单倍厚度\clbrdrr单元格右边框\brdrw15线宽\brdrs单倍厚度\cellx2732单元格右边界单元格2边框设置\clbrdrt单元格上边框\brdrw15线宽\brdrs单倍厚度\clbrdrl单元格左边框\brdrw15线宽\brdrs单倍厚度\clbrdrb单元格下边框\brdrw15线宽\brdrs单倍厚度\clbrdrr单元格右边框\brdrw15线宽\brdrs单倍厚度\cellx5573单元格右边界单元格3边框设置\clbrdrt单元格上边框\brdrw15线宽\brdrs单倍厚度\clbrdrl单元格左边框\brdrw15线宽\brdrs单倍厚度\clbrdrb单元格下边框\brdrw15线宽\brdrs单倍厚度\clbrdrr单元格右边框\brdrw15线宽\brdrs单倍厚度\cellx8414单元格右边界行1数据\pard重置段落属性\intbl段落是表的一部分\kerning2紧缩字符尺寸\f00\fs21尺寸21 1,1 1,1 \cell表单元格1结束1,2 1,2 \cell表单元格2结束1,3 1,3 \cell表单元格3结束\f1字体1\row表行1结束\f0字体0表格行2\trowd表行2开始\trgaph108表中单元格半间距\trleft-108表的最左边位置行边框设置\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 单元格1边框设置\clbrdrt\brdrw15\brdrs\clbrdrl\brdrw15\brdrs\clbrdrb\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx2732单元格2边框设置\clbrdrt\brdrw15\brdrs\clbrdrl\brdrw15\brdrs\clbrdrb\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx5573单元格3边框设置\clbrdrt\brdrw15\brdrs\clbrdrl\brdrw15\brdrs\clbrdrb\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx8414行2数据\intbl 段落是表的一部分2,1 2,1\cell表单元格1结束2,2 2,2\cell表单元格2结束2,3 2,3\cell表单元格3结束\f1字体1\row表行2结束至此,你应该对RTF表格输出有一定认识了吧。当然在中插入图片、嵌入表格等的实现方法同理,嵌入的图片可以等同于一段文本来处理,但是的实现可能比较复杂,因为它涉及嵌套层次等高级问题,这里不再详述,有兴趣的读者可以参考《Rich Text Format (RTF) Specification v1.7》。
七、小结:RTF文档基本结构通过对RTF文件的分析,我们得出一个RTF文件基本结构如下:
RTF文件&File&
文件头&header&
字符集&charset&
默认区域设置&deffont&
默认字体号\deff?
字体表&fonttbl&
文件表&filetbl&?
颜色表&colortbl&?
样式表&stylesheet&?
编目表&listtables&?
编目表{ \*\listtable }
编目替换表{ \*\listoverridetable }
段落组属性{ \*\pgptbl }
跟踪修订&revtbl&?
RSID表&rsidtable&?
生成器信息&generator&?文档区&document&
文档信息区&info&?
标题&title&?
主题&subject&?
作者&author&?
经理&manager&?
公司&company&?
最后修改者&operator&?
文档类别&category&?
关键字&keywords&?
注释&comment&?
文档的版本号\version?
Word摘要信息中的注释&doccomm&?
内部版本号\vern?
创建时间&creatim&?
修订时间&revtim&?
最后打印时间&printim&?
备份时间&buptim&?
总编辑时间(单位:分钟)\edmins?
页数\nofpages?
字数\nofwords?
包含空格的总字符数\nofchars?
内部ID号\id?
文档格式属性&docfmt&*
节文本&section&+
节格式属性&secfmt&*
页眉页脚设置&hdrftr&?
段落文本&para&+
文本&textpar&|
项目符号与编号&pn&?
段落边框&brdrdef&?
段落格式属性&parfmt&*
定位对象与边框&apoctl&*
制表位设置&tabdef&?
段落底纹&shading&?
隐藏与否(/v /spv)?
行开始\trowd
行定义&tbldef&
单元格&cell&+
单元格定义+
单元格内容+
重复行定义&tbldef&
行结束\row
字符文本&char&+
图片&pict&
图片开始{\*\shppict {\pict
脚注\footnote
注释&annot&
新手上路我有疑问投诉建议参考资料 查看

我要回帖

更多关于 excel第一个字母大写 的文章

 

随机推荐