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与iframe的那些事儿
Jul 04 Javascript
jQuery中:empty选择器用法实例
Dec 30 Javascript
js实现点击切换TAB标签实例
Aug 21 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
Dec 18 Javascript
JS实现类似百叶窗下拉菜单效果
Dec 30 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
Mar 28 Javascript
vue拦截器Vue.http.interceptors.push使用详解
Apr 22 Javascript
AngularJS基于factory创建自定义服务的方法详解
May 25 Javascript
jsonp跨域请求详解
Jul 13 Javascript
Element InfiniteScroll无限滚动的具体使用方法
Jul 27 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
Sep 29 Javascript
深入理解javascript中的this
Feb 08 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为字符串前后添加指定数量字符的方法
2015/05/04 PHP
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
javascript Firefox与IE 替换节点的方法
2010/02/24 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
如何编写高质量JS代码
2014/12/28 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
vue.js指令v-model实现方法
2016/12/05 Javascript
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
weex里Vuex state使用storage持久化详解
2017/09/09 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
浅谈React的最大亮点之虚拟DOM
2018/05/29 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
2018/08/22 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
Pyhton中防止SQL注入的方法
2015/02/05 Python
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
Python 的描述符 descriptor详解
2016/02/27 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
python+pyqt5实现KFC点餐收银系统
2019/01/24 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
银行见习期自我鉴定
2014/01/29 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
成绩单评语
2015/01/04 职场文书
重阳节座谈会主持词
2015/07/03 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
详解Vue的options
2021/05/15 Vue.js