Ale*_*x F 3 c# automation ms-word ms-office
以下代码将表插入Word文档:
using Word = Microsoft.Office.Interop.Word;
...
object oMissing = System.Reflection.Missing.Value;
object oEndOfDoc = "\\endofdoc";
Word._Application oWord;
Word._Document oDoc;
oWord = new Word.Application();
oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);
Word.Table oTable;
Word.Range wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
oTable = oDoc.Tables.Add(wrdRng, 3, 5, ref oMissing, ref oMissing);
oTable.Range.ParagraphFormat.SpaceAfter = 6;
int r, c;
string strText;
for (r = 1; r <= 3; r++)
for (c = 1; c <= 5; c++)
{
strText = "r" + r + "c" + c;
oTable.Cell(r, c).Range.Text = strText;
}
Run Code Online (Sandbox Code Playgroud)
此代码来自以下文章:http://support.microsoft.com/Default.aspx?scid = kb; en-us; 316384&spid = 2530&sid = 47
结果是:
r1c1 r1c2 r1c3 r1c4 r1c5 r2c1 r2c2 r2c3 r2c4 r2c5 r3c1 r3c2 r3c3 r3c4 r3c5
结果表没有边框.如何更改此代码以获取带边框的表格,例如"插入表格"Word命令?
Mr.*_*unt 11
我使用以下选项设置所有边框,它比每个单元格的设置边框更容易.请注意,获取的逻辑Range rng是VSTO加载项,但表逻辑保持不变.
using Microsoft.Office.Interop.Word;
......
void AddTable()
{
Range rng = Globals.ThisAddIn.Application.Selection.Range;
Table tbl = rng.Tables.Add(rng, 3, 5); //make table at current selection
tbl.Range.Font.Name = "Calibri";
tbl.Range.Font.Size = 10.5F;
tbl.Range.Font.Bold = 0;
//these 2 lines put borders both inside & outside - see result image at end
tbl.Borders.InsideLineStyle = WdLineStyle.wdLineStyleSingle;
tbl.Borders.OutsideLineStyle = WdLineStyle.wdLineStyleSingle;
for (r = 1; r <= 3; r++)
for (c = 1; c <= 5; c++)
{
strText = "r" + r + "c" + c;
oTable.Cell(r, c).Range.Text = strText;
}
}
Run Code Online (Sandbox Code Playgroud)
结果将如下表所示
希望这可以帮助.
小智 10
试试这个变种:
oTable.Cell(r, c).Range.Borders[WdBorderType.wdBorderLeft].LineStyle = WdLineStyle.wdLineStyleSingle;
oTable.Cell(r, c).Range.Borders[WdBorderType.wdBorderRight].LineStyle = WdLineStyle.wdLineStyleSingle;
oTable.Cell(r, c).Range.Borders[WdBorderType.wdBorderTop].LineStyle = WdLineStyle.wdLineStyleSingle;
oTable.Cell(r, c).Range.Borders[WdBorderType.wdBorderBottom].LineStyle = WdLineStyle.wdLineStyleSingle;
Run Code Online (Sandbox Code Playgroud)
放入周期.
您还可以设置线宽和颜色:
oTable.Cell(r, c).Range.Borders[WdBorderType.wdBorderBottom].LineWidth = WdLineWidth.wdLineWidth050pt;
oTable.Cell(r, c).Range.Borders[WdBorderType.wdBorderBottom].Color = WdColor.wdColorRed;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19645 次 |
| 最近记录: |