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 相关文章推荐
js null,undefined,字符串小结
Aug 21 Javascript
jQuery 对Select的操作备忘记录
Jul 04 Javascript
幻灯片带网页设计中的20个奇妙应用示例小结
May 27 Javascript
JavaScript设计模式之外观模式介绍
Dec 28 Javascript
全面解析bootstrap格子布局
May 22 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
Jun 14 Javascript
ES6新数据结构Set与WeakSet用法分析
Mar 31 Javascript
详解vue中computed 和 watch的异同
Jun 30 Javascript
qrcode生成二维码微信长按无法识别问题的解决
Apr 04 Javascript
vue 解决computed修改data数据的问题
Nov 06 Javascript
javascript实现移动端红包雨页面
Jun 23 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
Oct 09 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
通过html表格发电子邮件
2006/10/09 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
php二分查找二种实现示例
2014/03/12 PHP
php计算整个目录大小的方法
2015/06/19 PHP
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
IE8下String的Trim()方法失效的解决方法
2013/11/08 Javascript
javascript中使用正则计算中文长度的例子
2014/04/29 Javascript
提交按钮的name='submit'引起的js失效问题及原因
2015/02/25 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
2016/03/24 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
Node.js文本文件BOM头的去除方法
2020/11/22 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
Python NumPy库安装使用笔记
2015/05/18 Python
python网络编程之数据传输UDP实例分析
2015/05/20 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
python机器学习之神经网络实现
2018/10/13 Python
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
前台文员个人求职信范文
2014/01/05 职场文书
课堂教学改革实施方案
2014/03/17 职场文书
工商企业管理应届生求职信
2014/05/04 职场文书
同学聚会策划方案
2014/06/06 职场文书
岗位工作说明书
2014/07/29 职场文书
党员十八大心得体会
2014/09/12 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
自我检讨书怎么写
2015/05/07 职场文书
python中filter,map,reduce的作用
2022/06/10 Python
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技