使用Powershell生成的MS Word表集中的列文本对齐

时间:2017-01-31 19:31:36

标签: powershell text ms-word alignment

我是Powershell脚本编写的初学者并面临这个问题:

我在Word文档中生成了一组表。 最后,我喜欢为每个表格对齐第二列的所有单元格中的文本垂直居中。我试图使用像:

这样的代码结构
#include<iostream>
#include<conio.h>

using namespace std;

struct node
{
    int data;
    node *next;
};


class queue
{
    node *front, *rear;
public:
    queue()
    {
        front=rear=NULL;
    }
    void insert_in_queue();
    void delete_in_queue();
    void display_queue();
};

void queue:: insert_in_queue()
{
    node *ptr;
    ptr= new node;
    cout<<"\nInsert element\n";
    cin>>ptr->data;

    if(rear==NULL)
        front=rear=ptr;
    else
    {   rear->next=ptr;
        rear=ptr;
    }
}

void queue:: delete_in_queue()
{
    node *ptr;
    ptr=front;
    if(rear==NULL)
        cout<<"\nUnderflow!!\n";
    else if(front==rear)
        front=rear=NULL;
    else
        front=front->next;
    cout<<"\nThe deleted element is:: "<<ptr->data<<"\n";
    delete ptr;
}

void queue:: display_queue()
{
    node *ptr;
    ptr=front;
    cout<<"\nThe queue is:\n";
    while(ptr!=NULL)
    {
        cout<<"|"<<ptr->data<<"|";
        ptr=ptr->next;
    }
}

void main()
{
    queue q;
    char ch;
    int a;
    ch='y';
    cout<<"this is dynamic que progream\n\n\n";
    do
    {
        cout<<"(1)->Insert / (2)->Delete\n";
        cin>>a;
        if(a==1)
            q.insert_in_queue();
        else
            q.delete_in_queue();
        q.display_queue();
        cout<<"\nContinue?(y/n)\n";
        cin>>ch;
    }while(ch=='y');

    cout<<"\nThe final queue is:\n";
    q.display_queue();
    system("pause");

}

但是我发现没有办法在每张桌子的各列上找到对齐文本。

什么是可能的方式?

2 个答案:

答案 0 :(得分:1)

到目前为止没有找到答案。所以我最终得到了以下内容:

$word = New-Object -ComObject word.application
$document = $word.documents.open($wordTemplatePath)
...
For ($i = 1; $i -le $document.Tables.Count; $i++) {
    $a = $document.Tables.Item($i).Columns.Item(2).Select() 
    $objSelection = $word.Selection 
    $objSelection.ParagraphFormat.Alignment = "wdAlignParagraphCenter" 
    $objSelection.Cells.VerticalAlignment = 1
}

工作正常。

答案 1 :(得分:0)

要证明整个表格合理,您可以使用:

$table.Range.ParagraphFormat.Alignment=1

只做一个单元格:

$table.Cell(1,1).Range.ParagraphFormat.Alignment=1

其他值为左0(默认值)和右2

这些结合在一起可以使您的桌子看起来完美。