js导出格式化的excel 实例方法


Posted in Javascript onJuly 17, 2013
function getTableDataByXML(inTable, inWindow) {
    var rows = 0;
    //alert("getTblData is " + inWindow);
    var tblDocument = document;
    if (!!inWindow && inWindow != "") {
        if (!document.all(inWindow)) {
            return null;
        }
        else {
            tblDocument = eval(inWindow).document;
        }
    }
    var inTbl = tblDocument.getElementById(inTable);
    var outStr = "<?xml version=\"1.0\"?>\n";
    outStr = outStr + "<?mso-application progid=\"Excel.Sheet\"?>\n";
    outStr = outStr + "<Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\"";
    outStr = outStr + " xmlns:o=\"urn:schemas-microsoft-com:office:office\"";
    outStr = outStr + " xmlns:x=\"urn:schemas-microsoft-com:office:excel\"";
    outStr = outStr + " xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\">\n";
    outStr = outStr + "<Worksheet ss:Name=\"Sheet1\">\n";
    outStr = outStr + "<Table ss:ExpandedColumnCount=\"30\">\n";
    var re = /^[0-9]+.?[0-9]*$/; //是否为数字
    if (inTbl != null) {
        for (var j = 0; j < inTbl.rows.length; j++) {
            outStr += "<Row ss:AutoFitHeight=\"0\">\n";
            for (var i = 0; i < inTbl.rows[j].cells.length; i++) {
                if (i == 0 && rows > 0) {
                    outStr += "<Cell><Data ss:Type=\"String\"></Data></Cell>\n";
                    rows -= 1;
                }
                var cellValue = inTbl.rows[j].cells[i].innerText;
                //小于12位数字用Number
                if(re.test(cellValue) && (new String(cellValue)).length < 11){
                    outStr = outStr + "<Cell><Data ss:Type=\"Number\">" + cellValue + "</Data></Cell>\n";
                }else{
                    outStr = outStr + "<Cell><Data ss:Type=\"String\">" + cellValue + "</Data></Cell>\n";
                }
                if (inTbl.rows[j].cells[i].colSpan > 1) {
                    for (var k = 0; k < inTbl.rows[j].cells[i].colSpan - 1; k++) {
                        outStr += " <Cell><Data ss:Type=\"String\"></Data></Cell>\n";
                    }
                }
                if (i == 0) {
                    if (rows == 0 && inTbl.rows[j].cells[i].rowSpan > 1) {
                        rows = inTbl.rows[j].cells[i].rowSpan - 1;
                    }
                }
            }
            outStr += "</Row>\n";
        }
    }
    else {
        outStr = null;
        alert("你要导出的表不存在!!");
        return;
    }
    outStr = outStr + "</Table>\n</Worksheet>\n</Workbook>";
    return outStr;
}

上述函数原本是导出txt文件的函数。把excel文件另存为一个xml文件,就可得到excel能识别什么内容格式的xml文件。
Javascript 相关文章推荐
jQuery下的动画处理总结
Oct 10 Javascript
JS实现往下不断流动网页背景的方法
Feb 27 Javascript
JS判断字符串包含的方法
May 05 Javascript
jQuery实现的背景动态变化导航菜单效果
Aug 24 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
May 24 Javascript
JavaScript实现隐藏省略文字效果的方法
Apr 27 Javascript
Vue项目实现换肤功能的一种方案分析
Aug 28 Javascript
js实现列表向上无限滚动
Jan 13 Javascript
vue全屏事件开发详解
Jun 17 Javascript
JS XMLHttpRequest原理与使用方法深入详解
Apr 30 Javascript
Postman动态获取返回值过程详解
Jun 30 Javascript
vue:el-input输入时限制输入的类型操作
Aug 05 Javascript
js检查页面上有无重复id的实现代码
Jul 17 #Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
Jul 17 #Javascript
jcrop基本参数一览
Jul 16 #Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
Jul 16 #Javascript
jquery特效 幻灯片效果示例代码
Jul 16 #Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
Jul 16 #Javascript
js判断屏幕分辨率的代码
Jul 16 #Javascript
You might like
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
php自动载入类用法实例分析
2016/06/24 PHP
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
关于jQuery判断元素是否存在的问题示例探讨
2014/07/21 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
详解关于element级联选择器数据回显问题
2019/02/20 Javascript
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
python使用邻接矩阵构造图代码示例
2017/11/10 Python
Python实现的单向循环链表功能示例
2017/11/10 Python
Tornado 多进程实现分析详解
2018/01/12 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
python的range和linspace使用详解
2019/11/27 Python
Python 高效编程技巧分享
2020/09/10 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
单位在职证明范本
2014/01/09 职场文书
会议邀请函范文
2014/01/09 职场文书
公司员工安全协议书
2014/11/21 职场文书
先进工作者申报材料
2014/12/23 职场文书
初二学生评语大全
2014/12/26 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
与死神共舞观后感
2015/06/15 职场文书
创业计划书之o2o水果店
2019/08/30 职场文书
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python
Kubernetes关键组件与结构组成介绍
2022/03/31 Servers