给你的excel模板的每一列设定好格式,然后导出不就OK了?

解决方案 »

  1.   

    设定好格式 ,往excel 里面写数据。
      

  2.   

    能否具体点?我试过只能把一个grid导出不能全部导出,createWorksheet : function(c) {
    var y = [];
    var r = [];
    var g = this.getColumnModel();
    var e = 0;
    var b = "";
    var z = "";
    var f = 0;
    var q = g.getColumnCount();
    var C = "sheet1";
    for ( var B = 0; B < q; B++) {
    if ((g.getDataIndex(B) != "")
    && (c || !g.isHidden(B))) {
    var m = g.getColumnWidth(B);
    e += m;
    if (g.getColumnHeader(B) === ""
    && g.getColumnHeader(B) === '<div class="x-grid3-hd-checker">&#160;</div>') {
    y.push("None");
    r.push("");
    ++f
    } else {
    b += '<ss:Column ss:AutoFitWidth="1" ss:Width="'
    + m + '" />';
    z += '<ss:Cell ss:StyleID="headercell"><ss:Data ss:Type="String">'
    + g.getColumnHeader(B)
    + '</ss:Data><ss:NamedCell ss:Name="Print_Titles" /></ss:Cell>';
    var a = this.getStore().recordType.prototype.fields
    .get(g.getDataIndex(B));
    switch (a.type) {
    case "int":
    y.push("Number");
    r.push("int");
    break;
    case "float":
    y.push("Number");
    r.push("float");
    break;
    case "bool":
    case "boolean":
    y.push("String");
    r.push("");
    break;
    case "date":
    y.push("DateTime");
    r.push("date");
    break;
    default:
    y.push("String");
    r.push("");
    break
    }
    }
    }
    }
    var D = y.length - f;
    var h = {
    height : 9000,
    width : Math.floor(e * 30) + 50
    };
    var o = '<ss:Worksheet ss:Name="'
    + C
    + '"><ss:Names><ss:NamedRange ss:Name="Print_Titles" ss:RefersTo="=\''
    + this.title
    + '\'!R1:R2" /></ss:Names><ss:Table x:FullRows="1" x:FullColumns="1" ss:ExpandedColumnCount="'
    + (D + 2)
    + '" ss:ExpandedRowCount="'
    + (this.getStore().getCount() + 2)
    + '">'
    + b
    + '<ss:Row ss:Height="38"><ss:Cell ss:StyleID="title" ss:MergeAcross="'
    + (D - 1)
    + '"><ss:Data xmlns:html="http://www.w3.org/TR/REC-html40" ss:Type="String"><html:B>'
    + this.title
    + '</html:B></ss:Data><ss:NamedCell ss:Name="Print_Titles" /></ss:Cell></ss:Row><ss:Row ss:AutoFitHeight="1">'
    + z + "</ss:Row>";
    for ( var B = 0, d = this.view.getRows(), u = d.length; B < u; B++) {
    o += "<ss:Row>";
    var s = (B & 1) ? "odd" : "even";
    var x = 0;
    for ( var A = 0; A < q; A++) {
    if ((g.getDataIndex(A) != "")
    && (c || !g.isHidden(A))) {
    var n = "";
    if (this.exportView == true) {
    if (this.view.getCell(B, A).childNodes[0].innerHTML
    .indexOf("checkbox") < 0) {
    n = this.view.getCell(B, A).childNodes[0].innerHTML
    } else {
    if (this.getStore().data.items[B].data[g
    .getDataIndex(A)] == "0") {
    n = false
    } else {
    n = true
    }
    }
    } else {
    n = this.getStore().data.items[B].data[g
    .getDataIndex(A)]
    }
    if (y[x] !== "None") {
    o += '<ss:Cell ss:StyleID="' + s + r[x]
    + '"><ss:Data ss:Type="' + y[x]
    + '">';
    if (y[x] == "DateTime") {
    o += n.format("Y-m-d")
    } else {
    o += n
    }
    o += "</ss:Data></ss:Cell>"
    }
    x++
    }
    }
    o += "</ss:Row>"
    }
    h.xml = o
    + '</ss:Table><x:WorksheetOptions><x:PageSetup><x:Layout x:CenterHorizontal="1" x:Orientation="Landscape" /><x:Footer x:Data="Page &amp;P of &amp;N" x:Margin="0.5" /><x:PageMargins x:Top="0.5" x:Right="0.5" x:Left="0.5" x:Bottom="0.8" /></x:PageSetup><x:FitToPage /><x:Print><x:PrintErrors>Blank</x:PrintErrors><x:FitWidth>1</x:FitWidth><x:FitHeight>32767</x:FitHeight><x:ValidPrinterInfo /><x:VerticalResolution>600</x:VerticalResolution></x:Print><x:Selected /><x:DoNotDisplayGridlines /><x:ProtectObjects>False</x:ProtectObjects><x:ProtectScenarios>False</x:ProtectScenarios></x:WorksheetOptions></ss:Worksheet>';
    return h
    }
      

  3.   

    全部导出就是把页面中多个grid数据一并导入到一个excel表中