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

js导出excel自动合并行、列

    博客分类:
  • JS
 
阅读更多
function Co_Export(formObj,sSingleCmd, sCtrlId,nPos) {
 
 
var a=formObj;
var a=sSingleCmd;
var a=sCtrlId;
var a=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="";//标题名称
  
  
  
/**
 * 获取动态加载值
 */
//btmc=document.getElementsByName("SingelEdit_40").value;
 
//alert("btmc="+btmc);
//year=document.getElementsByTagName("征地年份").value;
 
//alert("year="+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;        //获取当前页面中的表格 
// var hang = table.rows.length;         //获取表格有多少行
// var count = selectedCheckBoxArr.size();         //获取表格有多少行
// var lie = table.rows(0).cells.length; //获取首行有多少列-多少标题
//格式设置
/*oSheet.Cells(1,1).Font.Bold = true;//加粗
oXL.Range("A2:K2").Font.Bold = true;//加粗
oXL.Range("A1:K1").MergeCells = true;//合并
oSheet.Cells(1,10).HorizontalAlignment = 7;//居中 
oSheet.Cells(1,1).Font.Size = 20; 
oSheet.Cells(2,1).Font.Size = 12;    */
//标题设置
   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 值的提取获得对应字符
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
var hh=String.fromCharCode(65+(i+1));//合并的当前cell
            debugger;
            var qiancurrentcell;
            if(ii>0){
               qiancurrentcell=str[ii-1].split(",")[(i-1)]
            }
if(currentcell!=qiancurrentcell){
if(hangcell==currentcell){//针对每行的处理,如果上个单元格与当前单元格内容相同,择执行合并
    hq=String.fromCharCode(65+(i-1));//合并的前cell
hh=String.fromCharCode(65+i);//合并的当前cell
    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(",");
        hang2cell=strs2[i];
        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];
        }
    }
 
                    }
            }
            //获取excel内容
            $.ajax({
        type:"post",
        url:"exportAction_exportData.do?id="+ywbdid+"",//通过控制器调用后台
        dataType:"json",
        async: false,
        success:function(data){ 
          for(i=0;i<data.length;i++){
            oSheet.Cells(i+(str.length+2),1).Value = data[i].bzddw;
            oSheet.Cells(i+(str.length+2),2).Value = data[i].zdmj;
            oSheet.Cells(i+(str.length+2),3).Value = data[i].xm;
            oSheet.Cells(i+(str.length+2),4).Value = data[i].wz;
            oSheet.Cells(i+(str.length+2),(str.length+2)).Value = data[i].zdk;
            oSheet.Cells(i+(str.length+2),6).Value = data[i].fzwbc;
            oSheet.Cells(i+(str.length+2),7).Value = data[i].qt;
            oSheet.Cells(i+(str.length+2),8).Value = data[i].zjk;
            oSheet.Cells(i+(str.length+2),9).Value = data[i].xyqdrq;
            oSheet.Cells(i+(str.length+2),10).Value = data[i].bh;
            oSheet.Cells(i+(str.length+2),11).Value = data[i].bz;
          }
        }, 
        error:function(){
      alert('暂无数据!');
}
    }); 
    oXL.Visible = true; //设置Excel的属性
 oXL.UserControl = true;
 },"json"); 
            
 
 
 
}
webform.CoReg('Co_Export', Co_Export);
分享到:
评论

相关推荐

    Javascript导出Excel,自动合并单元格、自动列宽、有进度条

    js导出execl,自动合并单元格,自动增行,增列

    javaScript 导出excel文件

    Cell 结构是指 Excel 文件中单元格的基本结构,包括 X 坐标、Y 坐标、合并列情况、合并行情况和内容等几个方面。 4. 将 HTML 表格转换为 Excel Cell 集合 将 HTML 表格转换为 Excel Cell 集合是指使用 JavaScript ...

    将HtmlTable 导出为Execl文件,支持合并单元格、合并行,无需Office支持

    总之,将HTML表格导出为Excel并支持合并单元格和合并行是一项实用的技术,它扩展了网页应用的功能,使用户能够方便地处理和分享结构化的数据。通过理解和实现这样的功能,开发者可以提升用户体验,特别是在数据报告...

    前端导出 excel ,设置字体,列宽,行高,对其方式,合并单元格等效果

    总结来说,前端导出Excel涉及到数据转换、样式设置和文件生成等多个步骤。使用像`SheetJS`这样的库可以帮助简化这一过程,但正确配置和优化仍然是关键。在实际项目中,确保按照需求正确设置字体、列宽、行高、对齐...

    vue 导出excel,支持单元格合并,背景色,列宽,字体大小等

    vue 导出excel,支持单元格合并,背景色,列宽,字体大小,一个js 文件就可以搞定

    Winform导入导出带有合并单元格的Excel

    winform使用Microsoft.Office.Interop.Excel读取带有合并单元格的Excel的demo,Excel版本不限,可以是.xls可以是.xlsx版本。本程序采用webbrowser显示读取的数据,使用bootstrap的css样式美化table表格,使用Json...

    VUE导出Excel,两种方法,方法二带样式:文字居中,自动换行,列宽设置,单元格合并,冻结表头等

    在标题提到的两种方法中,我们将重点讨论如何利用SheetJS和xlsx-style库来实现更复杂的Excel导出功能,如文字居中、自动换行、列宽设置、单元格合并以及冻结表头。 SheetJS是一个强大的JavaScript库,它允许开发者...

    xlsx-js-style导出Excel,带样式合并单元格边框显示不全和动态插入表头 解决

    在Excel中,合并单元格通常用于表示数据的分组或结构,例如将列标题行的多个单元格合并成一个单元格。当使用纯JavaScript实现时,若不正确处理这些合并的单元格,可能会导致导出后的Excel文件在视觉上出现边框不完整...

    js导出Excel 、Word [超实用][自动保存样式]

    总结一下,JavaScript导出Excel和Word的关键步骤包括: 1. 获取Table数据和样式信息。 2. 将数据转化为适合Excel或Word的格式。 3. 使用库(如SheetJS、docx)生成相应格式的文件。 4. 创建下载链接或通过服务器完成...

    Export2Excel.js导出excel

    "Export2Excel.js导出excel"是一个针对这种情况的解决方案,它允许在Vue项目中实现前端直接导出Excel文件。下面将详细阐述这个功能的实现原理和涉及的技术。 首先,"Blob.js"是用于处理浏览器中的Blob对象的...

    前端导出excel,可以控制样式,单元格合并居中等

    二、导出Excel的基本步骤 1. 引入库:在HTML文件中,通过`&lt;script&gt;`标签引入"xlsx.full.min.js"库。 2. 数据准备:将需要导出的数据整理成二维数组或JSON对象,这是Excel数据的基本结构。 3. 创建工作簿:使用`XLSX....

    JS导出Excel

    在JavaScript中,导出Excel是一项...以上就是关于使用JavaScript导出Excel,包括自动合并单元格、自动调整列宽以及从HTML表格获取数据的一些关键技术点。实际开发中,还需要结合项目需求和具体库的文档进行细致的实现。

    layui数据表格导出Excel插件

    layui数据表格导出Excel插件是一款为layui框架设计的实用工具,它允许用户方便地将layui数据表格中的数据导出到Excel文件中。layui是一款轻量级的前端UI框架,以其简洁、优雅的代码风格和丰富的组件库深受开发者喜爱...

    sheetJs+xlsx-style——前端实现导出excel表格——设置单元格背景色,居中,自动换行,宽度,百分数展示等

    在前端开发中,导出Excel表格是一项常见的需求,特别是在数据可视化和报表生成的场景下。SheetJS是一个强大的JavaScript库,用于读写多种电子表格格式,包括Microsoft Excel (XLS / XLSX) 和OpenDocument (ODS) 等。...

    JS操作Excel:使用js-xlsx实现前端导出Excel文件

    JavaScript是前端开发的主要语言,而js-...使用js-xlsx库实现前端导出Excel文件,首先要确保库已经被正确引入。通常,我们可以通过CDN链接在HTML文件中添加`&lt;script&gt;`标签来引入js-xlsx库,如以下代码所示: ```html ...

    js导出带样式的excel.zip

    下面我们将详细探讨JavaScript导出Excel的相关知识点以及layui如何在这个过程中发挥作用。 1. **JavaScript导出Excel**: - JavaScript本身并不直接支持创建或编辑二进制文件,如Excel。因此,开发者通常会借助于...

    JS导出EXCEL详细代码配置

    在浏览器中将数据导出到excel或WPS的电子表格中是程序开发中经常在实现的功能,提供数据导出,详细的功能注释让你一目了然,如Excel文件的操作,工作表、工作簿操作,单元格操作,表格格式(表格线、行高、列宽、...

    js实现Excel导出

    在JavaScript(JS)环境中,实现Excel导出是一项常见的需求,特别是在Web应用中处理大量数据时。前后端分离的开发模式下,前端需要处理用户交互,包括数据导出,这就需要我们借助一些库或者API来实现。以下是一些...

    Kendo UI框架grid的Excel导出功能改进js代码

    Kendo UI的Excel导出主要看两点,一是该列(column)是field字段,而不是自定义的name;二是该列不是隐藏的(hidden:true)。这样我们无法灵活导出我们需要的列。 为了解决上面两个问题,我查看了Kendo UI的源代码,...

    aspose的导出 和合并 和设置单元格样式

    1. **Aspose导出Excel**: Aspose允许开发者将数据导出为Excel文件格式,这对于数据报告、数据分析或者创建电子表格非常有用。通过Aspose.Cells API,你可以创建一个新的Workbook对象,然后在其中添加Worksheets,...

Global site tag (gtag.js) - Google Analytics