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 事件队列调整方法
Sep 18 Javascript
基于jquery ajax 用户无刷新登录方法详解
Apr 28 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
Dec 27 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
Aug 16 Javascript
javascript中闭包(Closure)详解
Jan 06 Javascript
总结JavaScript三种数据存储方式之间的区别
May 03 Javascript
jQuery封装的屏幕居中提示信息代码
Jun 08 Javascript
原生js实现自由拖拽弹窗代码demo
Jun 29 Javascript
使用Node.js实现RESTful API的示例
Aug 01 Javascript
JavaScript选择排序算法原理与实现方法示例
Aug 06 Javascript
详解Vuex下Store的模块化拆分实践
Jul 31 Javascript
vue-socket.io接收不到数据问题的解决方法
May 13 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
用文本文件制作留言板提示(上)
2006/10/09 PHP
[原创]PHP中通过ADODB库实现调用Access数据库之修正版本
2006/12/31 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
2014/10/26 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
2018/08/19 PHP
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
jQuery示例收集
2010/11/05 Javascript
javaScript同意等待代码实现心得
2011/01/01 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
2014/09/01 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
2018/02/14 Javascript
详解vue-cli中模拟数据的两种方法
2018/07/03 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
2019/04/12 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
Vue配置marked链接添加target=&quot;_blank&quot;的方法
2019/07/19 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
用Python编写一个国际象棋AI程序
2014/11/28 Python
Python使用MYSQLDB实现从数据库中导出XML文件的方法
2015/05/11 Python
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
点球小游戏python脚本
2018/05/22 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
基于Pycharm加载多个项目过程图解
2020/01/19 Python
python文件操作seek()偏移量,读取指正到指定位置操作
2020/07/05 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
维氏瑞士军刀英国网站:Victorinox英国
2019/07/04 全球购物
大学生个人推荐信范文
2013/11/25 职场文书
教师竞聘演讲稿
2014/05/16 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
《正比例》教学反思
2016/02/23 职场文书
python热力图实现的完整实例
2022/06/25 Python