Actionscript 3 如何使用Apache文件读取CSV文件?
我是Apache Flex的新手。我需要编写代码来读取内容如下所示的CSV文件,并使用mxml和actionscript将其填充为swf文件中的表数据Actionscript 3 如何使用Apache文件读取CSV文件?,actionscript-3,apache-flex,csv,flex4,mxml,Actionscript 3,Apache Flex,Csv,Flex4,Mxml,我是Apache Flex的新手。我需要编写代码来读取内容如下所示的CSV文件,并使用mxml和actionscript将其填充为swf文件中的表数据 如何读取CSV文件 如何在mxml中表示表,并在mxml中循环数据 下面是如何在flex中显示CSV数据的简单示例。该代码不包含任何故障切换功能,仅用于演示解决方案 数据通过函数loadData中的URLLoader加载 检索到的数据在函数processData中处理。它被分成几行。每行都转换为数组(同样通过拆分),结果被推送到输出数组,该数组
下面是如何在flex中显示CSV数据的简单示例。该代码不包含任何故障切换功能,仅用于演示解决方案
<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>
我尝试使用URLLoader、URLRequest类。由于我不熟悉这种语言,我无法理解它的确切语法。您是否计划构建桌面应用程序、移动应用程序或基于浏览器的应用程序?您是否希望将此CSV文件作为应用程序的一部分分发,或通过URL远程加载?您可能不需要Flex代码来加载数据;但您可以使用FlexDataGrid来显示它,这是一个基于浏览器的示例应用程序。我的经理要求我使用flex加载数据。
<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>