Luis, Só acrescentei o enconding pk akilo tava-me a passar caracteres estranhos para o xls.
Mas vou ver se altero o código para não necessitar de uma datagrid, para ser só uma arrayCollection. Abraço, Rui On 17 Abr, 11:41, Luis Costa <[email protected]> wrote: > 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 -~----------~----~----~----~------~----~------~--~---
