【问题标题】:How to read CSV file using Apache file?如何使用 Apache 文件读取 CSV 文件?
【发布时间】:2013-11-26 04:43:02
【问题描述】:

我是 Apache Flex 的新手。我需要编写代码来读取内容的 CSV 文件,如下所示,并使用 mxml 和 actionscript 将其填充为 swf 文件中的表数据。

  1. 如何读取 CSV 文件?
  2. 如何在mxml中表示表,在mxml中循环遍历数据?

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

【问题讨论】:

  • 我尝试使用 URLLoader、URLRequest 类。由于我是这种语言的新手,我无法理解它的确切语法
  • 您打算构建桌面应用程序、移动应用程序还是基于浏览器的应用程序?您是否希望将此 CSV 文件作为您的应用程序的一部分分发,或者通过 URL 远程加载它?您可能不需要 Flex 代码来加载数据;但您可以使用 Flex DataGrid 来显示它。
  • 它是一个基于浏览器的示例应用程序。我的经理让我使用 flex 加载数据。

标签: actionscript-3 apache-flex csv flex4 mxml


【解决方案1】:

这里是如何在 flex 中显示 CSV 数据的简单示例。该代码不包含任何故障转移功能,仅用于说明解决方案。

  1. 数据是通过 URLLoader 在函数 loadData 中加载的。
  2. 在函数 processData 中处理检索到的数据。它被分成几行。每行都被转换为数组(再次通过拆分),结果被推送到输出数组,该数组被分配为网格的数据提供者。网格定义了列,其数据字段与从行转换的数组中的索引匹配。

    <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>
    

【讨论】:

    猜你喜欢
    • 2018-09-07
    • 2023-01-18
    • 1970-01-01
    • 2022-11-11
    • 2019-02-08
    • 2019-06-12
    • 2018-09-12
    • 2010-12-08
    • 2019-08-27
    相关资源
    最近更新 更多