用XML绘制Word和Excel里的简单表格

Word

基础的WordXML对应元素

  • w:document:表示Word文档的根元素。
  • **w:p:**表示段落(Paragraph)元素。
  • **w:r:**表示文本运行(Run)元素,用于包含文本内容。
  • **w:t:**表示文本(Text)元素,用于存放实际的文本内容。
  • **w:tbl:**表示表格(Table)元素。
  • **w:tr:**表示表格行(Table Row)元素。
  • **w:tc:**表示表格单元格(Table Cell)元素。
  • **w:hyperlink:**表示超链接(Hyperlink)元素。
  • **w:br:**表示换行符(Break)元素。
  • **w:img:**表示图像(Image)元素,用于插入图像

基本结构

根据上述元素再结合资料得出,创建一个最基础的表格大概结构如下

<?xml  ...?>
<w:document>
  <w:tbl>
    <!-- 表格的内容 -->
    <W:tr>
      <w:tc>
        	<w:p>
						<w:r>
							<w:t>
                单元格文字
                <!-- 单元格内容 -->
              </w:t>
						</w:r>
					</w:p>
      </w:tc>
      ....
      <w:tc>
        	....
      </w:tc>
    </W:tr>
  </w:tbl>
</w:document>

基本表格

下面就是一个最简单的三行三列的表格
代码如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- document.xml 部件是文档正文中的内容。 需要此部件的元素用于内容显示的位置。-->
<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xml:space="preserve">
<!---文档内容-->
	<w:body>
	<!-- 表格开始标志-->
		<w:tbl>
		<!-- 表格属性-->
			<w:tblPr>
				<w:tblStyle w:val="3"/>
				<w:tblW w:w="0" w:type="auto"/>
				<w:tblInd w:w="0" w:type="dxa"/>
				<!--边框线-->
				<w:tblBorders>
					<!--上边线-->
					<w:top w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					<!--左边线-->
					<w:left w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					<!--下边线-->
					<w:bottom w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					<!--右边线-->
					<w:right w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					<!--横线-->
					<w:insideH w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					<!--竖线-->
					<w:insideV w:val="single" w:color="auto" w:sz="4" w:space="0"/>
				</w:tblBorders>
			</w:tblPr>
			<!--表格加一行-->
			<w:tr>
				<w:tblPrEx>
					<w:tblBorders>
						<w:top w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:left w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:bottom w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:right w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideH w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideV w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					</w:tblBorders>
				</w:tblPrEx>
				<!--表格加一列-->
				<w:tc>
					<!--单元格属性,由X行Y列决定在这一行中新加的一列就是一个单元格-->
					<w:tcPr>
						<!--单元格宽-->
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<!-- w:p  单元格中加一段落-->
					<w:p>
						<w:pPr>
							<!--单元格文字位置-->
							<w:jc w:val="right"/>
						</w:pPr>
						<w:r>
							<!-- w:t  表示真正的文本内容-->
							<w:t>一一</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>一二</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>一三</w:t>
						</w:r>
					</w:p>
				</w:tc>
			</w:tr>
			
			<w:tr>
				<w:tblPrEx>
					<w:tblBorders>
						<w:top w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:left w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:bottom w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:right w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideH w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideV w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					</w:tblBorders>
					<w:tblCellMar>
						<w:left w:w="108" w:type="dxa"/>
						<w:right w:w="108" w:type="dxa"/>
					</w:tblCellMar>
				</w:tblPrEx>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>二一</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>二二</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>二三</w:t>
						</w:r>
					</w:p>
				</w:tc>
			</w:tr>
			<w:tr>
				<w:tblPrEx>
					<w:tblBorders>
						<w:top w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:left w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:bottom w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:right w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideH w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideV w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					</w:tblBorders>
					<w:tblCellMar>
						<w:left w:w="108" w:type="dxa"/>
						<w:right w:w="108" w:type="dxa"/>
					</w:tblCellMar>
				</w:tblPrEx>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>三一</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>三二</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>三三</w:t>
						</w:r>
					</w:p>
				</w:tc>
			</w:tr>
		</w:tbl>
	</w:body>
</w:wordDocument>

效果如下:
image.png
表格在实际使用过程中,经常会有合并的情况,使用xml如何表示行列合并?

行合并

通过添加标签<w:vmerge w:val="restart"/>实现行合并。
在需要合并的第一行行开头的行样式标签中添加<w:vMerge w:val="restart"/>标签,在被合并行的行样式标签中添加<w:vmerge />
代码如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- document.xml 部件是文档正文中的内容。 需要此部件的元素用于内容显示的位置。-->
<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xml:space="preserve">
<!---文档内容-->
	<w:body>
	<!-- 表格开始标志-->
		<w:tbl>
		<!-- 表格属性-->
			<w:tblPr>
				<w:tblStyle w:val="3"/>
				<w:tblW w:w="0" w:type="auto"/>
				<w:tblInd w:w="0" w:type="dxa"/>
				<!--边框线-->
				<w:tblBorders>
					<!--上边线-->
					<w:top w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					<!--左边线-->
					<w:left w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					<!--下边线-->
					<w:bottom w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					<!--右边线-->
					<w:right w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					<!--横线-->
					<w:insideH w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					<!--竖线-->
					<w:insideV w:val="single" w:color="auto" w:sz="4" w:space="0"/>
				</w:tblBorders>
			</w:tblPr>
			<!--表格加一行-->
			<w:tr>
				<w:tblPrEx>
					<w:tblBorders>
						<w:top w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:left w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:bottom w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:right w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideH w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideV w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					</w:tblBorders>
				</w:tblPrEx>
				<!--表格加一列-->
				<w:tc>
					<!--单元格属性,由X行Y列决定在这一行中新加的一列就是一个单元格-->
					<w:tcPr>
						<!--单元格宽-->
						<w:tcW w:w="4261" w:type="dxa"/>
						<!--行合并开始标志-->
						<w:vmerge w:val="restart"/>
					</w:tcPr>
					<!-- w:p  单元格中加一段落-->
					<w:p>
						<w:pPr>
							<!--单元格文字位置-->
							<w:jc w:val="right"/>
						</w:pPr>
						<w:r>
							<!-- w:t  表示真正的文本内容-->
							<w:t>一一</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>一二</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>一三</w:t>
						</w:r>
					</w:p>
				</w:tc>
			</w:tr>
			
			<w:tr>
				<w:tblPrEx>
					<w:tblBorders>
						<w:top w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:left w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:bottom w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:right w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideH w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideV w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					</w:tblBorders>
					<w:tblCellMar>
						<w:left w:w="108" w:type="dxa"/>
						<w:right w:w="108" w:type="dxa"/>
					</w:tblCellMar>
				</w:tblPrEx>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
						<w:vmerge />
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>XXX</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>二二</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>二三</w:t>
						</w:r>
					</w:p>
				</w:tc>
			</w:tr>
			<w:tr>
				<w:tblPrEx>
					<w:tblBorders>
						<w:top w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:left w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:bottom w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:right w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideH w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideV w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					</w:tblBorders>
					<w:tblCellMar>
						<w:left w:w="108" w:type="dxa"/>
						<w:right w:w="108" w:type="dxa"/>
					</w:tblCellMar>
				</w:tblPrEx>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>三一</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>三二</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>三三</w:t>
						</w:r>
					</w:p>
				</w:tc>
			</w:tr>
		</w:tbl>
	</w:body>
</w:wordDocument>

效果如下
image.png

列合并

同样是通过添加标签实现。
在开始合并列的样式标签里添加<w:gridSpan w:val="2"/> 后续不需要继续添加<w:tc>标签,只需要设置值,val="2"就表示两列合并,跨度为2。
代码如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- document.xml 部件是文档正文中的内容。 需要此部件的元素用于内容显示的位置。-->
<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xml:space="preserve">
<!---文档内容-->
	<w:body>
	<!-- 表格开始标志-->
		<w:tbl>
		<!-- 表格属性-->
			<w:tblPr>
				<w:tblStyle w:val="3"/>
				<w:tblW w:w="0" w:type="auto"/>
				<w:tblInd w:w="0" w:type="dxa"/>
				<!--边框线-->
				<w:tblBorders>
					<!--上边线-->
					<w:top w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					<!--左边线-->
					<w:left w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					<!--下边线-->
					<w:bottom w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					<!--右边线-->
					<w:right w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					<!--横线-->
					<w:insideH w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					<!--竖线-->
					<w:insideV w:val="single" w:color="auto" w:sz="4" w:space="0"/>
				</w:tblBorders>
			</w:tblPr>
			<!--表格加一行-->
			<w:tr>
				<w:tblPrEx>
					<w:tblBorders>
						<w:top w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:left w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:bottom w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:right w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideH w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideV w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					</w:tblBorders>
				</w:tblPrEx>
				<!--表格加一列-->
				<w:tc>
					<!--单元格属性,由X行Y列决定在这一行中新加的一列就是一个单元格-->
					<w:tcPr>
						<!--单元格宽-->
						<w:tcW w:w="4261" w:type="dxa"/>
						<!--行合并开始标志-->
						<w:vmerge w:val="restart"/>
					</w:tcPr>
					<!-- w:p  单元格中加一段落-->
					<w:p>
						<w:pPr>
							<!--单元格文字位置-->
							<w:jc w:val="right"/>
						</w:pPr>
						<w:r>
							<!-- w:t  表示真正的文本内容-->
							<w:t>一一</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>一二</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>一三</w:t>
						</w:r>
					</w:p>
				</w:tc>
			</w:tr>
			
			<w:tr>
				<w:tblPrEx>
					<w:tblBorders>
						<w:top w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:left w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:bottom w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:right w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideH w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideV w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					</w:tblBorders>
					<w:tblCellMar>
						<w:left w:w="108" w:type="dxa"/>
						<w:right w:w="108" w:type="dxa"/>
					</w:tblCellMar>
				</w:tblPrEx>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
						<w:vmerge />
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>XXX</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>二二</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>二三</w:t>
						</w:r>
					</w:p>
				</w:tc>
			</w:tr>
			<w:tr>
				<w:tblPrEx>
					<w:tblBorders>
						<w:top w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:left w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:bottom w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:right w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideH w:val="single" w:color="auto" w:sz="4" w:space="0"/>
						<w:insideV w:val="single" w:color="auto" w:sz="4" w:space="0"/>
					</w:tblBorders>
					<w:tblCellMar>
						<w:left w:w="108" w:type="dxa"/>
						<w:right w:w="108" w:type="dxa"/>
					</w:tblCellMar>
				</w:tblPrEx>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>三一</w:t>
						</w:r>
					</w:p>
				</w:tc>
				<w:tc>
					<w:tcPr>
						<w:tcW w:w="4261" w:type="dxa"/>
						<w:gridSpan w:val="2"/>
					</w:tcPr>
					<w:p>
						<w:r>
							<w:t>三二</w:t>
						</w:r>
					</w:p>
				</w:tc>
			</w:tr>
		</w:tbl>
	</w:body>
</w:wordDocument>

效果如下:
image.png
注意事项:网上搜寻的其他资料中,行合并标签中的vmerge中的m为大写,自己从wps直接保存出来也是如此,但是自己测试的时候大写行合并功能不会生效.

Excel

基础的ExcelXML对应元素

  • **ss:Workbook:**根元素
  • **ss:Styles:**样式
  • **ss:Worksheet:**工作簿
  • **ss:Table:**工作表,可以有多个
  • ss:Column: 用于设置列宽
  • **ss:Row:**行
  • **ss:Cell:**列

基本结构

大概总结基本表格为如下结构。



<ss:Workbook xxxx>
    <ss:Styles>
      <!--  样式内容 -->
    </ss:Styles>
    <ss:Worksheet ss:Name="xxx">
        <ss:Table   >
        		<!-- 设置列宽   -->
            <ss:Column ss:Width="xxx"/>
            <!-- 表格内容   -->
            <ss:Row  ss:Height="xxx">
        				<ss:Cell  >
                   <!-- 单元格内容   -->
                   <ss:Data ss:Type="String">第一列</ss:Data>
                </ss:Cell>
            </ss:Row>
         <!-- xxxx   -->
        </ss:Table>
    </ss:Worksheet>
</ss:Workbook>

基本表格

以下是最基本三行三列表格
代码如下:

<?xml version="1.0"?>
<!--使用前缀ss 表示该命名空间适用所有前缀为ss的++++根元素 Workbook +++++ 声明命名空间-->
<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<!--名称空间声明表示xmlns:ss =而不仅仅是xmlns =。这意味着任何前面有“ss:”的东西都适用于电子表格命名空间。-->
<!--  表格基本样式  -->
    <ss:Styles>
        <ss:Style ss:ID="1">
            <ss:Font ss:Bold="1"/>
        </ss:Style>
    </ss:Styles>
<!--  工作簿 -->
    <ss:Worksheet ss:Name="Sheet1">
		<!-- 添加工作表  工作簿可以有多个工作表   ss:DefaultColumnWidth="54"可以设置其他单元格默认宽度, ss:DefaultRowHeight 可以设置单元格默认高度  -->
        <ss:Table   ss:DefaultColumnWidth="60" ss:DefaultRowHeight="15">
		<!-- 设置列宽   -->
            <ss:Column ss:Width="180"/>
            <ss:Column ss:Width="80"/>
            <ss:Column ss:Width="80"/>
			<!--  添加一个<Row>标签以及三个<Cell>标签。单元格的实际内容包含在一个<Data>标签中 -->
			<!--   引用样式 ss:StyleID="1" 设置某一行行高,在该标签中添加 ss:Height="xx"-->
            <ss:Row ss:StyleID="1" ss:Height="15">
				<ss:Cell  >
                   <ss:Data ss:Type="String">第一列</ss:Data>
                </ss:Cell>
                <ss:Cell>
                   <ss:Data ss:Type="String">第二列</ss:Data>
                </ss:Cell>
                <ss:Cell>
                   <ss:Data ss:Type="String">第三列</ss:Data>
                </ss:Cell>
            </ss:Row>
            <ss:Row>
                <ss:Cell>
                   <ss:Data ss:Type="String">二行一列</ss:Data>
                </ss:Cell>
                <ss:Cell >
                   <ss:Data ss:Type="String" >二行二列</ss:Data>
                </ss:Cell>
                <!--<ss:Cell>
                   <ss:Data ss:Type="String">二行三列</ss:Data>
                </ss:Cell>-->
            </ss:Row>
			<ss:Row ss:Height="25">
                <ss:Cell >
                   <ss:Data ss:Type="String">三行一列</ss:Data>
                </ss:Cell>
                <ss:Cell>
                   <ss:Data ss:Type="String">三行二列</ss:Data>
                </ss:Cell>
                <ss:Cell>
                   <ss:Data ss:Type="String">三行三列</ss:Data>
                </ss:Cell>
            </ss:Row>
        </ss:Table>
    </ss:Worksheet>
</ss:Workbook>

效果如下:
image.png

行合并

<ss:Cell>标签中添加<ss:Cell ss:MergeDown="1">属性,数字代表需要合并后续的行数。
比如合并第一二行,代码如下:

<?xml version="1.0"?>
<!--使用前缀ss 表示该命名空间适用所有前缀为ss的++++根元素 Workbook +++++ 声明命名空间-->
<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<!--名称空间声明表示xmlns:ss =而不仅仅是xmlns =。这意味着任何前面有“ss:”的东西都适用于电子表格命名空间。-->
<!--  表格基本样式  -->
    <ss:Styles>
        <ss:Style ss:ID="1">
            <ss:Font ss:Bold="1"/>
        </ss:Style>
    </ss:Styles>
<!--  工作簿 -->
    <ss:Worksheet ss:Name="Sheet1">
		<!-- 添加工作表  工作簿可以有多个工作表   ss:DefaultColumnWidth="54"可以设置其他单元格默认宽度, ss:DefaultRowHeight 可以设置单元格默认高度  -->
        <ss:Table   ss:DefaultColumnWidth="60" ss:DefaultRowHeight="15">
		<!-- 设置列宽   -->
            <ss:Column ss:Width="180"/>
            <ss:Column ss:Width="80"/>
            <ss:Column ss:Width="80"/>
			<!--  添加一个<Row>标签以及三个<Cell>标签。单元格的实际内容包含在一个<Data>标签中 -->
			<!--   引用样式 ss:StyleID="1" 设置某一行行高,在该标签中添加 ss:Height="xx"-->
            <ss:Row ss:StyleID="1" ss:Height="15">
				<!--  合并行,数字代表需要合并后续的行数  -->
				<ss:Cell   ss:MergeDown="1">
                   <ss:Data ss:Type="String">第一列</ss:Data>
                </ss:Cell>
                <ss:Cell>
                   <ss:Data ss:Type="String">第二列</ss:Data>
                </ss:Cell>
                <ss:Cell>
                   <ss:Data ss:Type="String">第三列</ss:Data>
                </ss:Cell>
            </ss:Row>
            <ss:Row>
                <ss:Cell>
                   <ss:Data ss:Type="String">二行一列</ss:Data>
                </ss:Cell>
                <ss:Cell >
                   <ss:Data ss:Type="String" >二行二列</ss:Data>
                </ss:Cell>
                <!--<ss:Cell>
                   <ss:Data ss:Type="String">二行三列</ss:Data>
                </ss:Cell>-->
            </ss:Row>
			<ss:Row ss:Height="25">
                <ss:Cell >
                   <ss:Data ss:Type="String">三行一列</ss:Data>
                </ss:Cell>
                <ss:Cell>
                   <ss:Data ss:Type="String">三行二列</ss:Data>
                </ss:Cell>
                <ss:Cell>
                   <ss:Data ss:Type="String">三行三列</ss:Data>
                </ss:Cell>
            </ss:Row>
        </ss:Table>
    </ss:Worksheet>
</ss:Workbook>

效果如下:
image.png

列合并

<ss:Cell>标签中添加<ss:Cell ss:MergeDown="1">属性,数值代表后续合并的行数,且不需要再添加<ss:Row>标签
代码如下:

<?xml version="1.0"?>
<!--使用前缀ss 表示该命名空间适用所有前缀为ss的++++根元素 Workbook +++++ 声明命名空间-->
<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<!--名称空间声明表示xmlns:ss =而不仅仅是xmlns =。这意味着任何前面有“ss:”的东西都适用于电子表格命名空间。-->
<!--  表格基本样式  -->
    <ss:Styles>
        <ss:Style ss:ID="1">
            <ss:Font ss:Bold="1"/>
        </ss:Style>
    </ss:Styles>
<!--  工作簿 -->
    <ss:Worksheet ss:Name="Sheet1">
		<!-- 添加工作表  工作簿可以有多个工作表   ss:DefaultColumnWidth="54"可以设置其他单元格默认宽度, ss:DefaultRowHeight 可以设置单元格默认高度  -->
        <ss:Table   ss:DefaultColumnWidth="60" ss:DefaultRowHeight="15">
		<!-- 设置列宽   -->
            <ss:Column ss:Width="180"/>
            <ss:Column ss:Width="80"/>
            <ss:Column ss:Width="80"/>
			<!--  添加一个<Row>标签以及三个<Cell>标签。单元格的实际内容包含在一个<Data>标签中 -->
			<!--   引用样式 ss:StyleID="1" 设置某一行行高,在该标签中添加 ss:Height="xx"-->
            <ss:Row ss:StyleID="1" ss:Height="15">
				<!--  合并行,数字代表需要合并后续的行数  -->
				<ss:Cell   ss:MergeDown="1">
                   <ss:Data ss:Type="String">第一列</ss:Data>
                </ss:Cell>
                <ss:Cell>
                   <ss:Data ss:Type="String">第二列</ss:Data>
                </ss:Cell>
                <ss:Cell>
                   <ss:Data ss:Type="String">第三列</ss:Data>
                </ss:Cell>
            </ss:Row>
            <ss:Row>
                <ss:Cell>
                   <ss:Data ss:Type="String">二行一列</ss:Data>
                </ss:Cell>
                <ss:Cell >
                   <ss:Data ss:Type="String" >二行二列</ss:Data>
                </ss:Cell>
                <!--<ss:Cell>
                   <ss:Data ss:Type="String">二行三列</ss:Data>
                </ss:Cell>-->
            </ss:Row>
			<ss:Row ss:Height="25">
                <ss:Cell >
                   <ss:Data ss:Type="String">三行一列</ss:Data>
                </ss:Cell>
				<!--  ss:MergeAcross="1"内容为合并列,数字代表需要合并后续的行数  -->
                <ss:Cell ss:MergeAcross="1">
                   <ss:Data ss:Type="String">三行二列</ss:Data>
                </ss:Cell>
            </ss:Row>
        </ss:Table>
    </ss:Worksheet>
</ss:Workbook>

效果如下:
image.png

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值