前两期介绍了如何用MATLAB启动Word并写入文本和图片,这期将介绍如何使用MATLAB中进行 Word的表格操作
表格在Word中为Table对象,可以调用Add方法在指定位置添加表格
图1 Table对象
下面的例子给出了一种表格的插入方法,包括表格的插入、单元格内容的写入、删除以及简单的框线定义
myTable = ActiveDoc.Tables.Add(Selection.Range,4,3); %在当前位置插入一个4x3的表格
myTable.Borders.InsideLineStyle = 'wdLineStyleSingle'; %将内部框线定义为实线
myTable.Borders.InsideLineWidth = 'wdLineWidth050pt'; %将内部线线宽定于为0.5磅
myTable.Borders.OutsideLineStyle = 'wdLineStyleDouble'; %将外部框线定义为双实线
myTable.Borders.InsideLineWidth = 'wdLineWidth050pt'; %将外部线线宽定于为0.5磅
myTable.Cell(1,1).Range.InsertAfter("1"); %在第一行第一列的单元格中写1
myTable.Cell(4,3).Range.InsertAfter("12"); %在第四行第三列的单元格中写12
myTable.Cell(1,2).Delete %删除第一行第二列的单元格
执行之后可以得到下面的结果
图2 插入表格
可以看出,Delete就是用右侧的单元格将删除的单元格覆盖了,进行单元格的合并和拆分可以用下面的方法
myTable.Cell(1,1).Range.InsertAfter("1"); %在第一行第一列的单元格中写1
myTable.Cell(1,2).Range.InsertAfter("2"); %在第一行第二列的单元格中写2
myTable.Cell(1,1).Merge(myTable.Cell(1,2)) %将第一行第一列和第一行第二列合并
myTable.Cell(2,1).Split(2,2) %将第二行第一列的单元格拆分成两行两列
通过运行结果可以看出,合并单元格后,原来单元格的数据都会同时保留,如果需要连续合并单元格,只需要将Merge方法中的两个单元格定为需要合并的单元格序列的首尾坐标即可。
图3 合并和拆分单元格
进一步的,如何设定我们在报告或论文中常见到的表格样式呢,下面就给出了一种设置方法
myTable.Rows.Item(1).Borders.Item('wdBorderTop').LineStyle = 'wdLineStyleSingle'; %将第一行的上框线定义为单实线,可用myTable.Rows.First代替
myTable.Rows.Item(1).Borders.Item('wdBorderTop').LineWidth = 'wdLineWidth225pt'; %线宽设置为225磅
myTable.Rows.Item(1).Borders.Item('wdBorderBottom').LineStyle = 'wdLineStyleSingle';%将第一行的下框线定义为单实线
myTable.Rows.Item(1).Borders.Item('wdBorderBottom').LineWidth = 'wdLineWidth050pt'; %线宽设置为50磅
myTable.Rows.Item(4).Borders.Item('wdBorderBottom').LineStyle = 'wdLineStyleSingle';%将第四行的下框线定义为单实线,可用myTable.Rows.Last代替
myTable.Rows.Item(4).Borders.Item('wdBorderBottom').LineWidth = 'wdLineWidth225pt'; %线宽设置为225磅
运行的结果如下
图4 常见表格样式
在对大量图片进行排版时,也常会用到表格,这时需要将图片插入到空白的表格中,可以这样实现
myTable = ActiveDoc.Tables.Add(Selection.Range,4,3); %在当前位置插入一个4x3的表格
Fig = myTable.Cell(1,2).Range.InlineShapes.AddPicture([pwd '\1.jpg']); %在第一行第二列插入图片
图5 在表格中插入图片
补充:
来源:Word (枚举 | Microsoft Learn)
https://learn.microsoft.com/zh-cn/office/vba/api/word(enumerations)
图6 边框枚举
图7 枚举类型