`
wanggeying
  • 浏览: 66592 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论

自动合并多行列标题

    博客分类:
  • JS
 
阅读更多
function Co_Export(formObj,sSingleCmd, sCtrlId,nPos) {
var vscmd = sSingleCmd.substring(nPos + 9,sSingleCmd.length);
    vscmd = ScanStr(formObj,vscmd,0,2,0,0);
    var ywbdid=vscmd.substring(1,vscmd.length-1);//获取后台传入的业务表单编号
 
/**
 * 声明属性
 */
var btmc="";//标题名称
var year="";//标题名称
 
/**
 * 获取动态加载值,导出excel
 *
 */
 var oXL = new ActiveXObject("Excel.Application"); //创建excel应用程序对象
 var oWB = oXL.Workbooks.Add();        //创建工作簿
 var oSheet = oWB.ActiveSheet;         //获取当前活动的工作簿
     oSheet.Rows("1:30").ColumnWidth =18; 
 var table = document.all.myTaskTable;        //获取当前页面中的表格 
 //标题设置
     oSheet.Cells(1,3).RowHeight=40;
     oSheet.Columns('A:E').ColumnWidth = 15;  
    //提取对应导出表单的表头信息
    $.post("exportAction_getCfg.do",{id:ywbdid},
 function(data){
 
            var str=data[0].lbm.split(";");
            
            var liecell;
            for(var ii=0;ii<str.length;ii++){
            var strs=str[ii].split(",");
oSheet.Cells(1,1).Font.Bold = true;//加粗
var a=String.fromCharCode(65+strs.length-1);//ASCII 值的提取获得对应字符,0对应的ASCII值是A所以用strs.length-1
if(strs.length-1>25){//25对应的ASCII值是Z ,如果超过Z
  a="A"+String.fromCharCode(65+strs.length-1-25);
}
oXL.Range("A"+(ii+2)+":"+a+'3').Font.Bold = true;//加粗
oXL.Range("A1:"+a+'1').MergeCells = true;//合并
oSheet.Cells(1,strs.length).HorizontalAlignment = 7;//居中 
oSheet.Cells(1,1).Font.Size = 20; 
oSheet.Cells(2,1).Font.Size = 12; 
            oSheet.Cells(1,1).Value = data[0].xznf+" "+data[0].bt;//标题
            var hangcell;
            var hang2cell;
            var currentcell;
            var n;
            for(var i=0;i<strs.length;i++){
                    currentcell=strs[i];
        oSheet.Cells(2+ii,i+1).Value = strs[i];
    var hq=String.fromCharCode(65+i);//合并的前cell
    debugger;
    if(i>25){//25对应的ASCII值是Z,超过Z
    for(var j=0;j<(i-25);j++){
   hq="A"+String.fromCharCode(65+j);
    }
}
var hh=String.fromCharCode(65+(i+1));//合并的当前cell
            if((i+1)>25){//25对应的ASCII值是Z 
    for(var j=0;j<(i+1)-25;j++){
   hh="A"+String.fromCharCode(65+j);
    }
}
            var qiancurrentcell;
            var houcurrentcell;
            if(ii>0){
               qiancurrentcell=str[ii-1].split(",")[(i-1)];
               houcurrentcell=str[ii-1].split(",")[(i+1)];
            }
if(currentcell!=qiancurrentcell && currentcell!=houcurrentcell){//判断当前单元格与左上角单元格值是否相同 与右上角
if(hangcell==currentcell){//针对每行的处理,如果上个单元格与当前单元格内容相同,择执行合并
    hq=String.fromCharCode(65+(i-1));//合并的前cell
    if((i-1)>25){//25对应的ASCII值是Z 
    for(var j=0;j<(i-1)-25;j++){
   hq="A"+String.fromCharCode(65+j);
    }
}
hh=String.fromCharCode(65+i);//合并的当前cell
if(i>25){//25对应的ASCII值是Z 
    for(var j=0;j<i-25;j++){
   hh="A"+String.fromCharCode(65+j);
    }
}
    var hbys=hq+(ii+2)+":"+hh+(ii+2);//组合的元素,示例:"A2:B2"
//oSheet.Cells(i,(i+1)).HorizontalAlignment =3;//居中 
oXL.Range(hbys).MergeCells = true;//合并
    }
}
    hangcell=strs[i];
    if(ii<str.length-1){
        var strs2=str[ii+1].split(",");
        var strs21=str[ii].split(",")[(i+1)];
        hang2cell=strs2[i];
        if(hang2cell!=strs21){//判断当前单元格与右上角单元格不同
        if(hang2cell==hangcell){//如果第二行的列与第一行的列单元格值相同,择执行合并
        var lq=hq+(ii+2);
var lh=hq+(ii+(2+1));//默认是从第三行进行处理
        var lbys=lq+":"+lh;//组合的元素,示例:"A2:A3"
        oXL.Range(lbys).MergeCells = true;//合并
        n=hang2cell;
        }
        else{
            oSheet.Cells(2+(ii+1),i+1).Value = strs2[i];
        }
        }
    }
 
                    }
            }
      //数据动态填充
 $.ajax({
        type:"post",
        url:"exportAction_exportData.do?id="+ywbdid+"",
        dataType:"json",
        async: false,
        success:function(data){
        
        var start=str.length+2;
        
        var ki=0;
        for(ki;ki<data.length;ki++){
      
          var h=ki;
         var o=1;
         //获取json 的键
         for(var j in data[h]){
         //通过键值 赋值
         oSheet.Cells(start,o).Value = data[h][j];
       //oSheet.Cells(i+(str.length),o).Value = data[h][j];
      
          o++;
      
          }
          start++;
        }
         }, 
        error:function(){
      alert('暂无数据!');
}
    }); 
    oXL.Visible = true; //设置Excel的属性
 oXL.UserControl = true;
  
 },"json"); 
 
   
}
webform.CoReg('Co_Export', Co_Export);
分享到:
评论

相关推荐

    一款android自动生成表格框架smartTable-master.zip

    表格合并单元(支持注解合并,支持自动合并); 支持其他刷新框架SmartRefreshLayout; 可配置表格最小宽度(小于该宽度自动适配); 支持直接List或数组字段转列; 支持Json数据直接转换成表格; 支持表格网格指定行列...

    Excel行列转换工具

    3. **执行转换**:点击"Excel行列转换工具"的按钮,软件会自动识别并执行转置操作,原数据将从行转换为列,或者从列转换为行。如果需要,可以预览转换结果。 4. **保存结果**:确认转换无误后,可以选择性地将结果...

    ext4合并单元格demo

    在标题“ext4合并单元格demo”和描述“ext4合并单元格完整demo,添加一行后自动合并单元格!”中,我们看到一个与ext4文件系统相关的特殊功能——在某种场景下实现了类似电子表格中单元格合并的操作。这可能是通过...

    富文本编辑器以及表格操作,可拉伸单元格宽度、增加行、增加列、合并单元格

    4. **合并单元格**:合并单元格功能允许用户将相邻的单元格组合成一个大的单元格,常用于创建标题或合并相同的数据。用户可以选择多个单元格,然后执行“合并单元格”操作,以实现这一效果。 5. **其他表格操作**:...

    excel文件合并器

    在IT领域,Excel文件合并器是一种实用工具,它允许用户高效地将多个具有相同结构的Excel文件整合到一个单一的工作簿中。这对于数据管理和分析工作来说尤其重要,尤其是在需要处理大量分散数据的情况下。下面我们将...

    smartTable-2.2.0.zip

    表格合并单元(支持注解合并,支持自动合并); 支持其他刷新框架SmartRefreshLayout; 可配置表格最小宽度(小于该宽度自动适配); 支持直接List或数组字段转列; 支持Json数据直接转换成表格; 支持表格网格指定行列...

    Excel2021中合并单元格有什么技巧?.docx

    3. **合并不同行列的某些单元格**: 如果需要合并不在同一行或同一列的单元格内容,可以使用简单的公式。例如,若要合并A2、C4、B3和D2的内容,选择一个空白单元格(如E2),输入`=A2&C4&B3&D2`,按下回车,E2...

    Android代码-好用漂亮的Android表格框架,样式丰富。

    表格合并单元(支持注解合并,支持自动合并); 支持其他刷新框架SmartRefreshLayout; 可配置表格最小宽度(小于该宽度自动适配); 支持直接List或数组字段转列; 支持Json数据直接转换成表格; 支持表格网格指定行列...

    CAD教程:CAD标题栏的制作方法.pdf

    创建表格后,可以根据需要调整行列数量以适应标题栏的大小。通过合并单元格来构建标题栏的结构,确保文字居中对齐。使用表格功能的一大优点是,写入文字时,文字会自动居中,而且可以设置字段,比如设计师姓名、日期...

    统一表头的数据合并1234.rar_Excel 宏_excel_宏

    "统一表头的数据合并1234.rar_Excel 宏_excel_宏"这个标题暗示了我们将在一个Excel工作簿中使用宏来统一处理多个表格的表头,实现一键合并的功能。下面我们将详细探讨如何实现这一操作。 首先,我们需要理解什么是...

    Excel教程-图文并茂.pdf

    冻结行列标题是 Excel 中的一种功能,可以用来冻结行列标题。读者可以学习如何使用冻结行列标题来提高数据的可读性。 知识点19:用窗体调用宏 用窗体调用宏是 Excel 中的一种功能,可以用来在窗体中调用宏命令。...

    超级有用的excel视频教程

    43、冻结行列标题 44、用窗体调用宏 45、函数向导输入 46、保存工作区 47、锁定隐藏公式 48、共享工作簿 49、公式变字符 50、设置标题颜色 51、设置只读密码 52、防止重复输入 53、添加页脚页眉 54、自动添加单位 ...

    Excel全栈教程

    43、冻结行列标题 44、用窗体调用宏 45、函数向导输入 46、保存工作区 47、锁定隐藏公式 48、共享工作簿 49、公式变字符 50、设置标题颜色 51、设置只读密码 52、防止重复输入 53、添加页脚页眉 54、自动添加单位 ...

    一套价值9999元的excel视频教学 通俗易懂 你值得拥有

    43、冻结行列标题 44、用窗体调用宏 45、函数向导输入 46、保存工作区 47、锁定隐藏公式 48、共享工作簿 49、公式变字符 50、设置标题颜色 51、设置只读密码 52、防止重复输入 53、添加页脚页眉 54、自动添加单位 ...

    一套价值10000元的excel视频教程

    43、冻结行列标题 44、用窗体调用宏 45、函数向导输入 46、保存工作区 47、锁定隐藏公式 48、共享工作簿 49、公式变字符 50、设置标题颜色 51、设置只读密码 52、防止重复输入 53、添加页脚页眉 54、自动添加单位 ...

    2021年EXCEL全套教程全.doc

    * 冻结行列标题:使用 Excel 的冻结行列标题功能,可以快速地冻结行列标题,提高数据的可读性。 七、 Excel 实际应用 * 使用 Excel 建立图表:可以快速地建立图表,用于数据可视化。 * 使用 Excel 获取网络数据:...

    Ecel表格的基本操作教程(办公自动化系列教案).doc

    - **冻结行列标题**:固定列标题或行标题,防止滚动时丢失参照。 - **添加多个视图**:创建并切换不同的工作视图,方便不同场景下的工作。 **5. 打印设置** - **打印指定页面**:选择特定页面进行打印,避免打印...

    做excel表格大全样本.doc

    涵盖自动筛选、数据分列整顿、数据合并、添加阐明文字、添加各种视图、设立打印区域、录制“宏”、建立图表、获取网络数据、使用搜索函数、插入超级链接、打印指定页面、冻结行列标题等多方面的知识点。 自动筛选 -...

    linux-结构化成行成列-小文件循环合并成大文件--方便上传hadoop

    标题中的"结构化成行成列"指的是将数据按照特定的行列格式进行组织。在文本文件中,通常以换行符分隔每一行,而在每一行内,数据可能是以逗号或其他分隔符进行列分隔的。这样做的好处是便于数据分析工具(如Hive、...

Global site tag (gtag.js) - Google Analytics