js导出格式化的excel 实例方法

最常见的方式是使用js函数操作excle文件,这种方式可能因浏览器不同,存在兼容性问题。另一种简单方法就是导出一个excel能识别格式的xml文件,用excel打开。
 
复制代码 代码如下:

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文件。

时间: 2024-10-05 14:19:54

js导出格式化的excel 实例方法的相关文章

js导出格式化的excel 实例方法_javascript技巧

复制代码 代码如下: function getTableDataByXML(inTable, inWindow) {    var rows = 0;    //alert("getTblData is " + inWindow);    var tblDocument = document;    if (!!inWindow && inWindow != "") {        if (!document.all(inWindow)) {   

ie浏览器使用js导出网页到excel并打印

 简单介绍一种可以使用简单的JS来实现把网页中的信息原样导出到Excel.还可以打印的方法,需要的朋友可以参考下 在一些要求不是很高的小项目中,可以使用一些虽不是通用且不是新技术但是确实可以很好实现功能的技术来实现这些功能.这样系统不是显示的很复杂,且可以方便维护.  新建一个exportPrint.html页面,里面的代码如下所示,就可以实现导出到Excel和打印网页.    代码如下: <html>  <head>   <title>IE浏览器使用JS技术导出到Ex

js导出table到excel同时兼容FF和IE示例_javascript技巧

复制代码 代码如下: <pre name="code" class="html">前台调用(第一个参数是table的id): <input value="导出" type="button" /> function toExcel(inTblId, inWindow) { if ($.browser.msie) { //如果是IE浏览器 try { var allStr = ""; v

tableExport.js导出Excel表格如何给导出的Excel文件赋名字?

问题描述 tableExport.js导出Excel表格如何给导出的Excel文件赋名字? 其中该JS中有个TableName属性,并没有起作用或者我的使用方式不对,求大神解答? 解决方案 http://www.cnblogs.com/qqflying/archive/2012/03/21/2409484.html 解决方案二: http://blog.csdn.net/kalision/article/details/8350506 解决方案三: js前端导出excel表格js 将table表

js导出excel文件的简洁方法(推荐)_javascript技巧

用js可以直接在jsp页面导出数据到excel文件,方法很简洁,如下: 第一,准备一个jsp(暂时取名为export.jsp),内容为: <%@ page contentType="text/html; charset=GBK"%> <% String context = request.getParameter("sContent"); response.setHeader("Content-type","appli

EasyUI 结合JS导出Excel文件的实现方法_jquery

废话俺就少说了,直接进入正题!!单纯的JS能够导出Excel的不多见,一般都需要调用客户端所安装的Office Excel组件来完成这个工作.这里我主要讲EasyUI内的DataGrid如何结合JS导出Excel文件 一. 导出Excel的核心代码段如下所示 function Exproter() { //获取Datagride的列 var rows = $('#test').datagrid('getRows'); var oXL = new ActiveXObject("Excel.Appl

JS导出Excel问题

问题描述 var oXL = new ActiveXObject("Excel.Application"); var oWB = oXL.Workbooks.Add(); var oSheet = oWB.ActiveSheet;oXL.visible = true;var frame=oXL.Application.GetSaveAsFilename(fliename+".xls","Excel File(*.xls)",".xls&

js导出excel时 为什么时间都变成######号了?谢谢指点!

问题描述 js导出excel时 为什么时间都变成解决方案二: 解决方案三:号了?谢谢指点! 解决方案 将excel显示时间的单元格宽度设置的宽一些就可以了.

JS导出PDF插件的方法(支持中文、图片使用路径)_javascript技巧

在WEB上想做一个导出PDF的功能,发现jsPDF比较多人推荐,遗憾的是不支持中文,最后找到pdfmake,很好地解决了此问题.它的效果可以先到http://pdfmake.org/playground.html查看.在使用过程中,还发现图片的插入是相对繁琐的一件事. 针对这些问题,本文的主要内容可分为三部分: •pdfmake的基本使用方法: •如何解决中文问题; •如何通过指定图片地址插入图片. pdfmake的基本使用方法 1.包含以下两个文件 <script src="build/