我是Apache Flex的新手。我需要编写代码来读取内容的CSV文件,如下所示,并使用mxml和actionscript将其作为swf文件中的表数据填充。
1001,Vertical1,FN1001,MN1001,LN1001,Addr1001,City1001,State1001
1011,Vertical1,FN1011,MN1011,LN1011,Addr1011,City1011,State1011
1021,Vertical1,FN1021,MN1021,LN1021,Addr1021,City1021,State1021
1031,Vertical1,FN1031,MN1031,LN1031,Addr1031,City1031,State1031
1041,Vertical1,FN1041,MN1041,LN1041,Addr1041,City1041,State1041
答案 0 :(得分:3)
以下是如何在flex中显示CSV数据的简单示例。该代码不包含任何故障转移功能,仅用于说明解决方案。
检索到的数据在函数processData中处理。它被分成几行。每行都转换为数组(再次通过拆分),结果被推送到输出数组,该数组被指定为网格的数据提供者。 Grid已定义列,其数据字段与从行转换的数组中的索引匹配。
<mx:Application name="CSVTest" xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="loadData();">
<mx:Script><![CDATA[
private var dataLoader:URLLoader;
private function loadData():void {
dataLoader = new URLLoader(new URLRequest("data.csv"));
dataLoader.addEventListener(Event.COMPLETE, parseData);
}
private function parseData(event:Event):void {
var output:Array = [];
var input:String = dataLoader.data;
var rows:Array = input.split("\n");
for (var i:int = 0, len:int = rows.length; i < len; i++) {
var row:Array = String(rows[i]).split(",");
output.push(row);
}
grid.dataProvider = output;
}
]]></mx:Script>
<mx:DataGrid id="grid">
<mx:columns>
<mx:DataGridColumn dataField="0"/>
<mx:DataGridColumn dataField="1"/>
<mx:DataGridColumn dataField="2"/>
<mx:DataGridColumn dataField="3"/>
<mx:DataGridColumn dataField="4"/>
<mx:DataGridColumn dataField="5"/>
<mx:DataGridColumn dataField="6"/>
<mx:DataGridColumn dataField="7"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>