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 浮动导航栏实现代码
Aug 27 Javascript
Java/JS获取flash高宽的具体方法
Dec 27 Javascript
浅谈Javascript如何实现匀速运动
Dec 19 Javascript
js控制div弹出层实现方法
May 11 Javascript
jquery中object对象循环遍历的方法
Dec 18 Javascript
js中数组插入、删除元素操作的方法
Feb 15 Javascript
JS中正则表达式全局匹配模式 /g用法详解
Apr 01 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
Apr 28 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
Nov 27 Javascript
Vuex实现计数器以及列表展示效果
Mar 10 Javascript
Node 升级到最新稳定版的方法分享
May 17 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
Apr 15 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
PHP中实现进程间通讯
2006/10/09 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
JS模板实现方法
2013/04/03 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
2013/07/09 Javascript
jquery+正则实现统一的表单验证
2015/09/20 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
js中数组常用方法总结(推荐)
2019/04/09 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
Python编写百度贴吧的简单爬虫
2015/04/02 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
Python创建或生成列表的操作方法
2019/06/19 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
Python3 解决读取中文文件txt编码的问题
2019/12/20 Python
Python嵌套函数,作用域与偏函数用法实例分析
2019/12/26 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
详解python中各种文件打开模式
2020/01/19 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
python ETL工具 pyetl
2020/06/07 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
美国户外运动商店:Sun & Ski
2018/08/23 全球购物
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
老干部工作先进集体事迹材料
2014/05/21 职场文书
室内趣味活动方案
2014/08/24 职场文书
乡文化站暑期培训方案
2014/08/28 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
见义勇为事迹材料
2014/12/24 职场文书
工作表扬信范文
2015/01/17 职场文书
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python