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 相关文章推荐
初识SmartJS - AOP三剑客
Jun 08 Javascript
jquery的ajax异步请求接收返回json数据实例
Jun 16 Javascript
AngularJs bootstrap搭载前台框架——准备工作
Sep 01 Javascript
Vue-resource实现ajax请求和跨域请求示例
Feb 23 Javascript
js 转义字符及URI编码详解
Feb 28 Javascript
浅谈Webpack自动化构建实践指南
Dec 18 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
Feb 01 Javascript
在Vue项目中使用snapshot测试的具体使用
Apr 16 Javascript
解决Vue中 父子传值 数据丢失问题
Aug 27 Javascript
vue实现计步器功能
Nov 01 Javascript
Vue组件通信入门之Provide和Inject机制
Dec 29 Javascript
全面解析Vue中的$nextTick
Dec 24 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
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
PHP 中使用ajax时一些常见错误总结整理
2017/02/27 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
幻宇的层模拟窗口效果-提供演示和下载
2007/01/20 Javascript
jQuery学习笔记 获取jQuery对象
2012/09/19 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
jQuery动态生成Bootstrap表格
2016/11/01 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
vuex 的简单使用
2018/03/22 Javascript
浅谈Node.js 中间件模式
2018/06/12 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
2019/04/11 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
Python设计模式之单例模式实例
2014/04/26 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
欧洲最大的球衣网上商店:Kitbag
2017/11/11 全球购物
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
公共事业管理本科生求职信
2013/10/07 职场文书
市场部管理制度
2014/02/02 职场文书
老总助理工作岗位职责
2014/02/06 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
优秀团队申报材料
2014/12/26 职场文书
教师节感谢信
2015/01/22 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle