Flex 把DataGrid转换成csv文件

<mx:Script>
        <![CDATA[

private function exportDataWithRO():void {               
                var CSVString:String = "";           
                // Run through each field to create the column headers row       
                  var columns:Array = this.DG.columns;
                for each(var i:AdvancedDataGridColumn in columns)
                {     
                    if(i.headerText == "")
                    {
                        continue;
                    }         
                    CSVString +=i.dataField+",";               
                }          
                CSVString += "======"; 
                // Run through each datagrid row          
                for each(var item:Object in this.DG.dataProvider)
                {          
                    for each (var df:AdvancedDataGridColumn in columns)
                    {
                        if(df.headerText == "")
                        {
                            continue;
                        }
                           CSVString += item[df.dataField] + ","; 
                     }
                     CSVString += "======";
                } 
                 navigateToURL(new URLRequest("/ECCIMS/downLoadCsv.jsp?reportName=chemicalCsv" + "&csvString=" + CSVString), "_blank");
              
              //  chemical.addEventListener(ResultEvent.RESULT,getExportResult); 
              //  chemical.saveAsCsvFile(CSVString); 
                  //export.exportData("chemicalCsv",CSVString);
            }

    ]]>
    </mx:Script>

 

<mx:HBox horizontalAlign="right" width="100%">
                <mx:Button label="导出" click="exportDataWithRO()"/>
            </mx:HBox>

<mx:AdvancedDataGrid id="DG" dataProvider="{acChemicalAll}" variableRowHeight="true" 
                            designViewDataType="flat"
                            width="100%" height="100%" rowCount="30">
                            <mx:columns>
                                <mx:AdvancedDataGridColumn headerText="药品ID" dataField="chemicalId" visible="false"/>
                                <mx:AdvancedDataGridColumn headerText="药品名" dataField="chemicalName"/>   
                                <mx:AdvancedDataGridColumn headerText="显示名" dataField="displayName"/>                           
                                <mx:AdvancedDataGridColumn headerText="实验室类别" dataField="labcategoryName" visible="false"/>
                                <mx:AdvancedDataGridColumn headerText="所在实验室" dataField="labName"/>
                                <mx:AdvancedDataGridColumn headerText="规格" dataField="scale" visible="false"/>
                                <mx:AdvancedDataGridColumn headerText="单价" dataField="unitPrice"/>
                                <mx:AdvancedDataGridColumn headerText="浓度" dataField="concentration" visible="false"/>
                                <mx:AdvancedDataGridColumn headerText="数量" dataField="number"/>
                                <mx:AdvancedDataGridColumn headerText="药品纯度" dataField="chemicalProperty" visible="false"/>
                                <mx:AdvancedDataGridColumn headerText="药品质量" dataField="drymatterAmount"/>
                                <mx:AdvancedDataGridColumn headerText="" dataField="col3" id="deleteChem" sortable="false">
                                    <mx:itemRenderer>
                                        <mx:Component>
                                            <mx:HBox horizontalAlign="center">
                                                    <mx:Button label="删除" width="100%" click="parentDocument.popDeleteAlert()"/> 
                                            </mx:HBox>
                                         </mx:Component>
                                     </mx:itemRenderer>
                                </mx:AdvancedDataGridColumn>
                                <mx:AdvancedDataGridColumn headerText="" dataField="col3" id="updateChem" sortable="false">
                                    <mx:itemRenderer>
                                        <mx:Component>
                                            <mx:HBox horizontalAlign="center">
                                                    <mx:Button label="修改" width="100%" click="parentDocument.toUpdateChemical()"/> 
                                            </mx:HBox>
                                        </mx:Component>
                                    </mx:itemRenderer>
                                </mx:AdvancedDataGridColumn>
                                <mx:AdvancedDataGridColumn headerText="" dataField="col3" id="detailChem" sortable="false">
                                    <mx:itemRenderer>
                                        <mx:Component>
                                            <mx:HBox horizontalAlign="center">
                                                   <mx:Button label="查看" width="100%" click="parentDocument.toChemicalDetail()"/> 
                                            </mx:HBox>
                                        </mx:Component>
                                    </mx:itemRenderer>
                                </mx:AdvancedDataGridColumn>
                            </mx:columns>
                        </mx:AdvancedDataGrid>

</mx:Canvas>

 

 

/**
         * @author FQQ
         * @param csvString 是用逗号分隔的字符串
         * @throws IOException
         * @explain 把AdvancedDataGrid中的数据保存成csv文件
         */
        public void saveAsCsvFile(String csvString) throws IOException
        {           
            log.debug("the csvString is " + csvString);
            FileOutputStream fos = null;
            OutputStreamWriter osw = null;
            BufferedWriter out = null;           
            try {
                fos = new FileOutputStream("D:/b.csv");
                osw = new OutputStreamWriter(fos, "GB2312"); // 如果要写入全角字符,应该选择合适的编码
                out = new BufferedWriter(osw);
                // 判断资料是否为空
                if (csvString!=null && csvString !="")
                {
                    String[] strArrChemical = csvString.split("\n");
                    // 设置标题
                    out.write(strArrChemical[0]);
                    out.newLine();
                    // 设置內容
                    for(int i=1;i<strArrChemical.length;i++)
                    {
                        writeTextFileForLine(out, strArrChemical[i]);
                    }   
                    out.close();
                    osw.close();
                    fos.close();
                }
            }
            catch (IOException e)
            {
                e.printStackTrace();
                throw e;
            }
        }
        /**
        * 生成CSV格式Text文件的一行内容
        * @param out
        * @param strRow
        * @throws IOException
        * @author FQQ
        */
        private void writeTextFileForLine(BufferedWriter out,String strRow)throws IOException
        {
            try
            {
                // 内容   
                out.write(strRow);   
                out.newLine();
            }
            catch (IOException e)
            {
                e.printStackTrace();
                throw e;
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值