在word文档中,表格可以帮助我们清晰、直观的分析和整理数据。一个表格通常至少包含一行,每行至少包含一个单元格,一个单元格可以包含多种元素如文本和表格(即嵌套表格)等。本文将介绍如何使用spire.doc在word文档中创建表格和嵌套表格。
在创建表格时,我们可以预先指定好表格的行数和列数,也可以通过动态的方式向表格中添加行和单元格。
创建预定义行数和列数的表格
我们可以通过table.resetcells(int rowsnum, int columnsnum)方法来创建一个预先定义好行数和列数的表格。代码示例:
c#
//创建word文档
document document = new document();
//添加section
section section = document.addsection();
//添加表格
table table = section.addtable(true);
//指定表格的行数和列数(2行,3列)
table.resetcells(2, 3);
//获取单元格(第1行第1个单元格)并添加文本
textrange range = table[0, 0].addparagraph().appendtext("产品");
range.characterformat.fontname = "arial";
range.characterformat.fontsize = 12;
range.characterformat.textcolor = color.teal;
range.characterformat.bold = true;
//获取单元格(第1行第2个单元格)并添加文本
range = table[0, 1].addparagraph().appendtext("单价");
range.characterformat.fontname = "arial";
range.characterformat.fontsize = 12;
range.characterformat.textcolor = color.teal;
range.characterformat.bold = true;
//获取单元格(第1行第3个单元格)并添加文本
range = table[0, 2].addparagraph().appendtext("数量");
range.characterformat.fontname = "arial";
range.characterformat.fontsize = 12;
range.characterformat.textcolor = color.teal;
range.characterformat.bold = true;
//获取单元格(第2行第1个单元格)并添加文本
range = table[1, 0].addparagraph().appendtext("a");
range.characterformat.fontname = "arial";
range.characterformat.fontsize = 10;
//获取单元格(第2行第2个单元格)并添加文本
range = table[1, 1].addparagraph().appendtext("¥1800");
range.characterformat.fontname = "arial";
range.characterformat.fontsize = 10;
//获取单元格(第2行第3个单元格)并添加文本
range = table[1, 2].addparagraph().appendtext("10");
range.characterformat.fontname = "arial";
range.characterformat.fontsize = 10;
//保存文档
document.savetofile("table.docx");
vb.net
'创建word文档
dim document as document = new document
'添加section
dim section as section = document.addsection
'添加表格
dim table as table = section.addtable(true)
'指定表格的行数和列数(2行,3列)
table.resetcells(2, 3)
'获取单元格(第1行第1个单元格)并添加文本
dim range as textrange = table(0, 0).addparagraph.appendtext("产品")
range.characterformat.fontname = "arial"
range.characterformat.fontsize = 12
range.characterformat.textcolor = color.teal
range.characterformat.bold = true
'获取单元格(第1行第2个单元格)并添加文本
range = table(0, 1).addparagraph.appendtext("单价")
range.characterformat.fontname = "arial"
range.characterformat.fontsize = 12
range.characterformat.textcolor = color.teal
range.characterformat.bold = true
'获取单元格(第1行第3个单元格)并添加文本
range = table(0, 2).addparagraph.appendtext("数量")
range.characterformat.fontname = "arial"
range.characterformat.fontsize = 12
range.characterformat.textcolor = color.teal
range.characterformat.bold = true
'获取单元格(第2行第1个单元格)并添加文本
range = table(1, 0).addparagraph.appendtext("a")
range.characterformat.fontname = "arial"
range.characterformat.fontsize = 10
'获取单元格(第2行第2个单元格)并添加文本
range = table(1, 1).addparagraph.appendtext("¥1800")
range.characterformat.fontname = "arial"
range.characterformat.fontsize = 10
'获取单元格(第2行第3个单元格)并添加文本
range = table(1, 2).addparagraph.appendtext("10")
range.characterformat.fontname = "arial"
range.characterformat.fontsize = 10
'保存文档
document.savetofile("table.docx")
动态向表格添加行和单元格
如果需要动态地向表格添加行和单元格,我们需要使用table.addrow() 方法和 tablerow.addcell()方法。代码示例:
c#
//创建word文档
document doc = new document();
//添加section
section section = doc.addsection();
//添加表格
table table = section.addtable(true);
//添加第1行
tablerow row1 = table.addrow();
//添加第1个单元格到第1行
tablecell cell1 = row1.addcell();
cell1.addparagraph().appendtext("姓 名");
//添加第2个单元格到第1行
tablecell cell2 = row1.addcell();
cell2.addparagraph().appendtext("年 龄");
//添加第2行
tablerow row2 = table.addrow(true,false);
//添加第1个单元格到第2行
tablecell cell3 = row2.addcell();
cell3.addparagraph().appendtext("约 翰");
//添加第2个单元格到第2行
tablecell cell4 = row2.addcell();
cell4.addparagraph().appendtext("21");
table.autofit(autofitbehaviortype.autofittowindow);
//保存文档
doc.savetofile("table2.docx");
vb.net
'创建word文档
dim doc as document = new document
'添加section
dim section as section = doc.addsection
'添加表格
dim table as table = section.addtable(true)
'添加第1行
dim row1 as tablerow = table.addrow
'添加第1个单元格到第1行
dim cell1 as tablecell = row1.addcell
cell1.addparagraph.appendtext("姓 名")
'添加第2个单元格到第1行
dim cell2 as tablecell = row1.addcell
cell2.addparagraph.appendtext("年 龄")
'添加第2行
dim row2 as tablerow = table.addrow(true, false)
'添加第1个单元格到第2行
dim cell3 as tablecell = row2.addcell
cell3.addparagraph.appendtext("约 翰")
'添加第2个单元格到第2行
dim cell4 as tablecell = row2.addcell
cell4.addparagraph.appendtext("21")
table.autofit(autofitbehaviortype.autofittowindow)
'保存文档
doc.savetofile("table2.docx")
创建嵌套表格
我们可以使用body.addtable()方法来向一个表格中的指定单元格添加一个嵌套表格。代码示例:
c#
//创建word文档
document doc = new document();
section section = doc.addsection();
//添加表格
table table = section.addtable(true);
table.resetcells(2, 3);
//设置行高和列宽
table.rows[0].height = 20;
table.rows[1].height = 50;
table.rows[0].cells[0].width = table.rows[0].cells[2].width = 50;
table.rows[1].cells[0].width = table.rows[1].cells[2].width = 50;
table.autofit(autofitbehaviortype.autofittowindow);
//添加文本到单元格
table[0, 0].addparagraph().appendtext("学 号");
table[0, 1].addparagraph().appendtext("姓 名");
table[0, 2].addparagraph().appendtext("成 绩");
table[1, 0].addparagraph().appendtext("01");
table[1, 1].addparagraph().appendtext("张 三");
table[1, 2].addparagraph().appendtext("详 情");
//添加嵌套表格到第2行第3个单元格
table nestedtable = table[1, 2].addtable(true);
nestedtable.resetcells(3, 2);
nestedtable.autofit(autofitbehaviortype.autofittocontents);
//添加文本到嵌套表格
nestedtable[0, 0].addparagraph().appendtext("科 目");
nestedtable[0, 1].addparagraph().appendtext("成 绩");
nestedtable[1, 0].addparagraph().appendtext("语 文");
nestedtable[1, 1].addparagraph().appendtext("88");
nestedtable[2, 0].addparagraph().appendtext("数 学");
nestedtable[2, 1].addparagraph().appendtext("95");
//保存文档
doc.savetofile("nested_table.docx", fileformat.docx2013);
vb.net
'创建word文档
dim doc as document = new document
dim section as section = doc.addsection
'添加表格
dim table as table = section.addtable(true)
table.resetcells(2, 3)
'设置行高和列宽
table.rows(0).height = 20
table.rows(1).height = 50
table.rows(0).cells(2).width = 50
table.rows(1).cells(2).width = 50
table.autofit(autofitbehaviortype.autofittowindow)
'添加文本到单元格
table(0, 0).addparagraph.appendtext("学 号")
table(0, 1).addparagraph.appendtext("姓 名")
table(0, 2).addparagraph.appendtext("成 绩"))
table(1, 0).addparagraph.appendtext("01")
table(1, 1).addparagraph.appendtext("张 三")
table(1, 2).addparagraph.appendtext("详 情")
'添加嵌套表格到第2行第3个单元格
dim nestedtable as table = table(1, 2).addtable(true)
nestedtable.resetcells(3, 2)
nestedtable.autofit(autofitbehaviortype.autofittocontents)
'添加文本到嵌套表格
nestedtable(0, 0).addparagraph.appendtext("科 目")
nestedtable(0, 1).addparagraph.appendtext("成 绩")
nestedtable(1, 0).addparagraph.appendtext("语 文")
nestedtable(1, 1).addparagraph.appendtext("88")
nestedtable(2, 0).addparagraph.appendtext("数 学")
nestedtable(2, 1).addparagraph.appendtext("95")
'保存文档
doc.savetofile("nested_table.docx", fileformat.docx2013)