<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    export to excel from flex

     

    Clever solution to the "How can I export to Excel?" problem, by bdeen, as posted on MM Flex forum.

    I know we all have users asking "Can I Export/Import to Excel?". Apparently Excel is the best thing to come along to the user community since large amounts of RAM. I personally have used Excel maybe 3 times in my life, but I always try to help out the user. So this is about exporting DataGrid information into Excel.

    A few things to realize about this solution.
    1) It should be able to run in all the Flash Players.
    2) I only tested the output in Excel 2003.
    3) I added IE specific javascript (which you don't need to have to still get this functionality) which will open Excel and populate it with the data in the DataGrid.
    4) This solution uses basic html styles and table.
    5) I populate the styles with background colors however Excel only has a handful of allowable colors and it might assign odd colors to an unodd color in Flash. so light blue might come out as lavendar. soft shades of gray/grey come out as white. Dark colors are seen as purple. However if you paste the result of this into an html file and have IE or FireFox render it, it comes out very much like the look and feel you have in Flex.
    6) Font's seem to translate well, as well as sizes of fonts. I didn't do anything other than font family and font size, if you want more you can add it yourself, it's rather easy.
    7) I added widths (which again looks great in a Browser) but Excel seems to ignore them.
    8) I use labelFunctions and then columnNames, if you define the labelFunction then the copied content will reflect what the labelFunction produces, as well as the String version of the columnName

    Code:

    // ACTION SCRIPT FOR YOUR FLEX APP
    function doCopy(dg)
    {
    var font = dg.getStyle('fontFamily');
    var size = dg.getStyle('fontSize');
    var hcolor ;
    if(dg.getStyle("headerColor") != undefined) hcolor = [dg.getStyle("headerColor")];
    else hcolor = dg.getStyle("headerColors");
    var str:String = '<html><body><table width="'+dg.width+'"><thead><tr width="'+
    dg.width+'" style="background-color:#' +Number((hcolor[0])).toString(16)+'">'; for(var i=0;i<dg.__columns.length;i++) { var colors = dg.getStyle("themeColor"); var style = 'style="font-family:'+font+';font-size:'+size+'pt;"'; if(dg.__columns[i].headerText != undefined) { str+="<th "+style+">"+dg.__columns[i].headerText+"</th>"; } else { str+= "<th "+style+">"+dg.__columns[i].columnName+"</th>"; } } str += "</tr></thead><tbody>"; var colors = dg.getStyle("alternatingRowColors"); for(var j=0;j<dg.length;j++) { str+="<tr width=\""+Math.ceil(dg.width)+"\" style='background-color:#" +Number((colors[j%colors.length])).toString(16)+"'>"; var style = 'style="font-family:'+font+';font-size:'+size+'pt;"'; for(var i=0;i<dg.__columns.length;i++) { if(dg.getItemAt(j) != undefined && dg.getItemAt(j) != null) if(dg.__columns[i].labelFunction != undefined) str += "<td width=\""+Math.ceil(dg.__columns[i].width)+"\" "+style+">"+
    dg.__columns[i].labelFunction(dg.getItemAt(j),dg.__columns[i].columnName)+"</td>"; else str += "<td width=\""+Math.ceil(dg.__columns[i].width)+"\" "+style+">"+
    dg.getItemAt(j)[dg.__columns[i].columnName]+"</td>"; } str += "</tr>"; } str+="</tbody></table></body></html>"; System.setClipboard(str); } function handleOnKeyUp() { if(Key.isDown(Key.CONTROL) &&Key.getCode() ==67) { mx.managers.CursorManager.setBusyCursor(); doCopy(grid);
    // exchange 'grid' with the id of your datagrid you want copied mx.managers.CursorManager.removeBusyCursor(); } } // only register interest if you want ctrl-c to process a copy of a datagrid.
    // it's also ctrl + c (on key up, not down) var obj:Object; function registerKeyInterest() { if(obj == undefined) { obj = new Object(); obj.onKeyUp = mx.utils.Delegate.create(this,handleOnKeyUp); } Key.addListener(obj); } function removeKeyInterest() { Key.removeListener(obj); } function copyAndOpen(grid) { doCopy(grid); getUrl("javascript:openExcel();"); } // JAVASCRIPT for your HTML PAGE <SCRIPT Language="JavaScript1.2"> var excel = null; function openExcel() { try { if(excel == null) { excel = new ActiveXObject("Excel.Application"); } var workbook = excel.Workbooks.Add(); workbook.Activate(); var worksheet = workbook.Worksheets("Sheet1"); worksheet.Activate(); worksheet.Paste(); excel.visible=true; }catch(exception) { window.alert("Now you may Paste into an Excel SpreadSheet"); } } </SCRIPT>

    posted on 2007-05-08 16:41 leoli 閱讀(2016) 評論(0)  編輯  收藏 所屬分類: Flex

    導航

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    統(tǒng)計

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案(17)

    文章分類(86)

    收藏夾(3)

    flex blog

    good site

    java blog

    my friend

    tools

    抓蝦

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲午夜爱爱香蕉片| 永久免费观看的毛片的网站| 亚洲综合图色40p| 人成免费在线视频| 亚洲精品无码久久久| 猫咪www免费人成网站| 亚洲精品久久久www| 一级毛片免费在线| 亚洲精品乱码久久久久久按摩 | 性做久久久久免费看| 亚洲youwu永久无码精品 | 99热在线日韩精品免费| 亚洲AV中文无码字幕色三| 无码专区AAAAAA免费视频| 亚洲制服丝袜精品久久| 成人片黄网站A毛片免费| 亚洲人成电影网站免费| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 亚洲国产美女精品久久久| 免费国产怡红院在线观看| 一区二区3区免费视频| 亚洲视频在线视频| 成年女人毛片免费观看97| 免费观看四虎精品成人| 亚洲精品蜜桃久久久久久| 妻子5免费完整高清电视| 国产精品亚洲а∨天堂2021| 精品亚洲视频在线观看| 四虎国产精品永久免费网址| 亚洲狠狠成人综合网| 亚洲天堂中文字幕在线| 外国成人网在线观看免费视频 | 色哟哟国产精品免费观看| 亚洲av永久无码精品漫画| 成人免费福利电影| XXX2高清在线观看免费视频| 2019亚洲午夜无码天堂| 亚洲精品自产拍在线观看| 在线观看H网址免费入口| 免费无码国产在线观国内自拍中文字幕 | 午夜视频在线免费观看|