我是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");
}
但是我发现没有办法在每张桌子的各列上找到对齐文本。
什么是可能的方式?
答案 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
这些结合在一起可以使您的桌子看起来完美。