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 相关文章推荐
javascript入门基础之私有变量
Feb 23 Javascript
十个优秀的Ajax/Javascript实例网站收集
Mar 31 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
Jan 24 Javascript
caller和callee的区别介绍及演示结果
Mar 10 Javascript
改变隐藏的input中value的值代码
Dec 30 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
May 10 Javascript
理解JavaScript原型链
Oct 25 Javascript
jQuery EasyUi 验证功能实例解析
Jan 06 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
Apr 08 jQuery
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
Dec 13 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
Aug 23 Javascript
JavaScript用document.write()输出换行的示例代码
Nov 26 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根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
Smarty中的注释和截断功能介绍
2015/04/09 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
php使用file函数、fseek函数读取大文件效率对比分析
2016/11/04 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
javascript 多浏览器 事件大全
2010/03/23 Javascript
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
javascript操作css属性
2013/12/30 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
2014/09/02 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
2015/12/23 Javascript
基于JavaScript实现右键菜单和拖拽功能
2016/11/28 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
python读写文件操作示例程序
2013/12/02 Python
python字符串加密解密的三种方法分享(base64 win32com)
2014/01/19 Python
Python内建数据结构详解
2016/02/03 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
100行python代码实现跳一跳辅助程序
2018/01/15 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
python logging 日志的级别调整方式
2020/02/21 Python
django API 中接口的互相调用实例
2020/04/01 Python
Python中常见的数制转换有哪些
2020/05/27 Python
python爬虫中的url下载器用法详解
2020/11/30 Python
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
酷瑞网络科技面试题
2012/03/30 面试题
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
大学毕业的自我鉴定
2013/10/08 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
业绩倒数第一的检讨书
2014/09/24 职场文书
2016年校长新年寄语
2015/08/17 职场文书
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL