Olá Rui. Já fiz o código para passar para o excel e tens duas opções, ou
transformando os dados da grid em formato Html ou em Csv. Eu uso o formato
html pk fica mais bonito. De seguida tá o código que utilizo.

****************************************Código**************************************************

private function convertDGToHTMLTable(dg:*):void
            {
                str = '';

                var font:String = dg.getStyle('fontFamily');
                var size:String =
(int(dg.getStyle('fontSize'))-2).toString(); //Reduz em 2, o tamanho da
fonte.

                var colors:String = '';
                var style:String =
'style="font-family:'+font+';font-size:'+size+'pt;"';
                var hcolor:Array;

                if(dg.getStyle("headerColor") != undefined) {
                    hcolor = [dg.getStyle("headerColor")];
                } else {
                    hcolor = dg.getStyle("headerColors");
                }

                str+= '<table width="'+dg.width+'"><thead><tr
width="'+dg.width+'" style="background-color:#'
+Number((hcolor[0])).toString(16)+'">';

                for(var i:int = 0;i<dg.columns.length;i++) {
                    colors = dg.getStyle("themeColor");

                    if(dg.columns[i].headerText != undefined &&
dg.columns[i].visible == true) {
                        str+="<th
"+style+">"+dg.columns[i].headerText+"</th>";
                    } else if (dg.columns[i].visible == true) {
                        str+= "<th
"+style+">"+dg.columns[i].dataField+"</th>";
                    }
                }
                str += "</tr></thead><tbody>";
                colors = dg.getStyle("alternatingRowColors");

                for(var j:int =0;j<dg.dataProvider.length;j++) {

                    str+="<tr width=\""+Math.ceil(dg.width)+"\">";

                    for(var k:int=0; k < dg.columns.length; k++) {
                        if(dg.dataProvider.getItemAt(j) != undefined &&
dg.dataProvider.getItemAt(j) != null && dg.columns[k].visible == true &&
dg.columns[k].dataField != "Melhor") {
                            if(dg.columns[k].labelFunction != undefined &&
dg.columns[k].labelFunction != null && dg.columns[k].visible == true) {
                                str += "<td nowrap=\"nowrap\"
width=\""+Math.ceil(dg.columns[k].width)+"\"
"+style+">"+dg.columns[k].labelFunction(dg.dataProvider[j],dg.columns[k])+"</td>";
                            } else {
                                str += "<td nowrap=\"nowrap\"
width=\""+Math.ceil(dg.columns[k].width)+"\"
"+style+">"+dg.dataProvider.getItemAt(j)[dg.columns[k].dataField]+"</td>";
                            }
                        }
                    }
                    str += "</tr>";
                }
                str+="</tbody></table>";

                saveFile();
            }

            public function saveFile():void
            {
                saveFileRef = new FileReference();
                saveFileRef.addEventListener(Event.SELECT,
onSaveFileSelected);
                //this will throw a window for user to select the location
                //and file name to save. Second argument is the default name
                saveFileRef.save(str,"HistoricoGeral.xls");
            }


****************************************************************************************

Depois só tens de chamar pela função convertDGToHTMLTable colocando a grid
que queres enviar.

Cumprimentos
Luís Costa

2009/4/17 Rui Costa <[email protected]>

>
> Boas pessoal,
>
> Este "novo" FileReference é realmente muito fofinho, ainda assim para
> escrever num excel acho algo complicado pois ele manda tudo para a
> mesma celula, alguma ideia de como meter as coisas mais bonitinhas?
>
> Rui
>
> On 14 Abr, 18:50, Luis Costa <[email protected]> wrote:
> > Confere rui, tinhas razão.
> > Já conseguir criar na minha aplicação uma maneira de criar os ficheiros
> no
> > computador. É necessário alterar a versão do flash player com que o
> projecto
> > está a ser criado pois a função FileReference é da biblioteca do flash e
> tal
> > como disseste só no 10 é que está actualizado para isso.
> >
> > Link para alterar tudo do projecto para flash 10:
> http://opensource.adobe.com/wiki/display/flexsdk/Targeting+Flash+Play...
> >
> > Função para criar qualquer tipo de ficheiro a partir de uma aplicação
> Flex:
> >
> > public function saveFile():void
> >             {
> >                 saveFileRef = new FileReference();
> >                 saveFileRef.addEventListener(Event.SELECT,
> > onSaveFileSelected);
> >                 //this will throw a window for user to select the
> location
> >                 //and file name to save. Second argument is the default
> name
> >                 saveFileRef.save("Ola mundo","Teste.xls");
> >             }
> >
> > Sendo o "Ola Mundo" o que queremos que o ficheiro tenha e o "Teste.xls" o
> > nome  do documento e a respecitva extensão pretendida.
> >
> > Obrigado a todos
> > Luís Costa
> >
> > 2009/4/14 rui <[email protected]>
> >
> >
> >
> > > Luis Costa wrote:
> > > > Pois, mas o objectivo é o utilizador não estar no Japão e ter de
> > > > aceder ao servidor em Portugal para criar um ficheiro com os dados
> que
> > > > já estão no lado da aplicação. Se eles já estão ali no browser tem de
> > > > haver um jeito de os exportar sem ser necessário ir ao servidor
> novamente
> >
> > > > 2009/4/14 Miguel Vaz <[email protected] <mailto:
> [email protected]>>
> >
> > > >     Acho que a partir do flex 3 não é possivel, por motivos de
> > > >     segurança, mas é-o utilizando alguma outra linguagem de
> > > >     "suporte"/servidor. Eu utilizo PHP, com a qual podes, utilizando
> o
> > > >     flex como "front-end", criar e gerir ficheiros, etc. Existem
> > > >     outras linguagens e línguas, como é óbvio, como o sueco, ASP,
> > > >     esperanto, java, e afins.
> >
> > > >     MV
> >
> > > >     2009/4/14 Luis Costa <[email protected]
> > > >     <mailto:[email protected]>>
> >
> > > >         Alguém tem um ideia fácil de como a partir duma aplicação
> Flex
> > > >         3 criar um ficheiro txt a dizer "Olá mundo"?
> >
> > > >         Cumprimentos
> > > >         Luís Costa
> >
> > > ja dei a resposta 2 vezes -.-
> >
> > > e a mim alguem me ajuda?http://bugs.adobe.com/jira/browse/FCM-11
> >
>

--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Mailing List da Comunidade 
Portuguesa de Rich Internet Applications - www.riapt.org" do Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
[email protected]
 Para anular a inscrição neste grupo, envie um email para 
[email protected]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/riapt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---

Responder a