当前位置: 代码迷 >> JavaScript >> JS表单WORD惯用操作
  详细解决方案

JS表单WORD惯用操作

热度:118   发布时间:2012-10-29 10:03:53.0
JS表单WORD常用操作
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();
//}
}
}
  相关解决方案