tablesObj.Cell(行, 列).Split(1,3);//将某行某列单元格拆分成一行三列
2>tablesObj.Cell(行,列).Merge(tablesObj.Cell(行,列));//合并某行某列到某行某列。
3>tablesObj.Cell(行,列).Range.Text//给单元格赋值。
4>tablesObj = this.office.obj.ActiveDocument.Tables(1);//得到表格
5> tablesObj.rows(fixlength+uselength+1).Borders(2).LineStyle=0;//左边虚线0,实线1,其中1 上 2左 3下 4右,常用于连续添加WORD表格的情况
6> tablesObj.Rows(行).Delete();//删除行,注意:只有未合并列的情况下才能进行删除。
7> tablesObj.Cell(行, 列) .Font.Name=”宋体” //字体设置,同样还有.Font.Size字体大小等。
8> tablesObj.Cell.ParagraphFormat.Alignment= align;//居中对齐
以下代码实现如图功能:
??
思路如下:
1、加载模板,模板如图:
2、往第二三行所有需要赋值的单元格赋父页面取到的值。
3、循环新增加行填充后台取到的使用情况数据。
4、拆分单元格,3列拆成5列。
5、循环新增加行,并循环填充后台取到的数据。
6、如果行数为添加值长度-1则不再增加行(如果不做这个,最后会多一行)
7、合并列。
关键方法代码(貌似不准加):
this.fillData = function() {
//下面的值是从父页面拿到的。
var datas = this.getPageData().data;
var numberplate = datas.numberplate;//车辆号码
var vehicletypeid =datas.vehicletypeid;//车辆型号
var displacement=datas.displacement;//排气量
var buyprice=datas.buyprice;//价格
var buystime=datas.buystime.substring(0,10);//购买时间
var suiche=datas.suiche;//随车配置
var id=datas.ids;//车辆ID
var sumyear=new Array();
var summile=new Array();
var tablesObj = this.office.obj.ActiveDocument.Tables(1);//得到表格
debugger;
//以下取使用情况数据,从后台拿的Result数据
var useyear=this.request('LBIPVehicleyear',{id:id}) ;
if(useyear==null){
alert("没有使用数据!");
return;
}
var useyeardata=LEAP.convertResult(useyear);
if(useyeardata!=null){
for(var i=0;i<useyeardata.length;i++){
sumyear[i]=useyeardata[i].sumyear;
summile[i]=useyeardata[i].summile;
}
}
var uselength=useyeardata.length;
//以下取维修数据,从后台拿的Result数据
var fixVehicle=this.request('getfixVehicle',{id:id})
if(fixVehicle==null){
alert("没有维修数据!");
return;
}
var fixVehicledata=LEAP.convertResult(fixVehicle);
//取维修数据长度
var fixlength=fixVehicledata.length;
var fixdata=new Array();
var fixtype=new Array();
var fixcost=new Array();
if(fixVehicledata!=null){
for(var f=0;f<fixVehicledata.length;f++){
fixdata[f]=fixVehicledata[f].maintaineddate;
fixtype[f]=fixVehicledata[f].maintainedtype;
fixcost[f]=fixVehicledata[f].maintainedcost;
}
//填充车辆数据.
tablesObj.Cell(2,1).Range.Text =numberplate;
tablesObj.Cell(2,2).Range.Text =vehicletypeid;
tablesObj.Cell(2,3).Range.Text =displacement;
tablesObj.Cell(2,4).Range.Text =buyprice;
tablesObj.Cell(2,5).Range.Text =buystime;
tablesObj.Cell(3,2).Range.Text =suiche.substring(1,suiche.length-1);
tablesObj.Rows.add();//新增行
//填充使用情况数据
for(var j=0;j<uselength;j++){
tablesObj.Cell(6+j,2).Range.Text =sumyear[j];
tablesObj.Cell(6+j,3).Range.Text =summile[j];
tablesObj.Rows.add();//新增行
}
//tablesObj.Rows.Split(BeforeRow=tablesObj.Cell(tablesObj.rows(uselength+5)));//拆分行
tablesObj.Cell(uselength+5, 3).Split(1,3);
tablesObj.Cell(uselength+6,1).Range.Text ="车辆维护记录";
tablesObj.Cell(uselength+6,2).Range.Text ="序号";
tablesObj.Cell(uselength+6,3).Range.Text ="维修日期";
tablesObj.Cell(uselength+6,4).Range.Text ="维修项目";
tablesObj.Cell(uselength+6,5).Range.Text ="金额";
tablesObj.Rows.add();//新增行
for(var k=0;k<fixlength;k++){
tablesObj.Cell(7+uselength+k,2).Range.Text =k+1;
tablesObj.Cell(7+uselength+k,3).Range.Text =fixdata[k].substring(0,10);
tablesObj.Cell(7+uselength+k,4).Range.Text =fixtype[k];
tablesObj.Cell(7+uselength+k,5).Range.Text =fixcost[k];
if(k!=fixlength-1){
tablesObj.Rows.add();//新增行
}
}
tablesObj.Cell(4,1).Merge(tablesObj.Cell(4+uselength,1));//合并使用情况统计列
tablesObj.Cell(5+uselength,1).Merge(tablesObj.Cell(5+uselength+fixlength,1));//合并车辆维护记录列
//
//
//
//
//
//
// //循环合并行驶公里数据列
// for(var w=0;w<uselength;w++){
// tablesObj.Cell(6+w,3).Merge(tablesObj.Cell(6+w,5));
// }
//
// //合并车辆维护记录第一列
// tablesObj.Cell(uselength+7,1).Merge(tablesObj.Cell(uselength+fixlength+7,1));
// tablesObj.Cell(fixlength+uselength+1,1).Merge(tablesObj.Cell(fixlength+uselength+1,5));
// tablesObj.rows(fixlength+uselength+1).Borders(2).LineStyle=0;//左边虚线0,实线1
// tablesObj.rows(fixlength+uselength+1).Borders(4).LineStyle=0;//右边虚线0,实线1
//
//var bb=id.length;
////Borders(),1 上 2左 3下 4右
//if(i==bb-1){
//tablesObj.Rows(uselength+7).Delete();
//}
}
}