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 要点归纳(二) jQuery中的DOM操作(下)
Mar 23 Javascript
在模板页面的js使用办法
Apr 01 Javascript
SeaJS入门教程系列之完整示例(三)
Mar 03 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
Dec 06 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
Feb 22 Javascript
解决Extjs下拉框不显示的问题
Jun 21 Javascript
JavaScript调试之console.log调试的一个小技巧分享
Aug 07 Javascript
vue中appear的用法
Aug 17 Javascript
web前端vue filter 过滤器
Jan 12 Javascript
Vue的轮播图组件实现方法
Mar 03 Javascript
在Web关闭页面时发送Ajax请求的实现方法
Mar 07 Javascript
vue如何使用rem适配
Feb 06 Vue.js
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详细彻底学习Smarty
2008/03/27 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
PHP命名空间简单用法示例
2018/12/28 PHP
jquery DOM操作 基于命令改变页面
2010/05/06 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
详解JavaScript中循环控制语句的用法
2015/06/03 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
2017/03/07 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
微信小程序授权登录及解密unionId出错的方法
2018/09/26 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python中的map、reduce和filter浅析
2014/04/26 Python
Python数据类型学习笔记
2016/01/13 Python
python非递归全排列实现方法
2017/04/10 Python
django定期执行任务(实例讲解)
2017/11/03 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
python实现俄罗斯方块
2018/06/26 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
python绘制雪景图
2019/12/16 Python
Python 元组拆包示例(Tuple Unpacking)
2019/12/24 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
python3判断IP地址的方法
2021/03/04 Python
Linux的文件类型
2016/07/05 面试题
如何现实servlet的单线程模式
2014/08/05 面试题
大学生创业项目方案
2014/03/08 职场文书
体现团队精神的口号
2014/06/06 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
教师党员承诺书2015
2015/01/21 职场文书
电气工程师岗位职责
2015/02/12 职场文书
离婚协议书范文2016
2016/03/18 职场文书
导游词之清晏园
2019/11/22 职场文书