【问题标题】:csv in datagrid数据网格中的 csv
【发布时间】:2011-05-03 15:12:53
【问题描述】:

从 mysql 生成包含一组数据的 csv 格式,现在我可以导入 datagrid 以显示每个值,但我有一个问题,哪个值会出现双引号 ("1", "2") 而不是 (1 ,2,3 等),删除双引号(“”)的最佳方法是什么?

"1";"asd@sad.com";"asdasdasd";"1302531993"
"2";"asdasd@asd.com";"werwetewt";"234235"
"3";"asdasd@asd.com";"werwetewt";"234235"

【问题讨论】:

    标签: flash apache-flex actionscript


    【解决方案1】:

    您可以尝试以下方法:

    <?xml version="1.0" encoding="utf-8"?>
    <s:Application creationComplete="init(event)" xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark">
        <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.events.FlexEvent;
    
            protected function init(event:FlexEvent):void
            {
                var beginningQuotesExp:RegExp = /^\s*"/gm;
                var result:String = csvData.replace(beginningQuotesExp, "");
                var endingQuotesExp:RegExp = /"\s*$/gm;
                result = result.replace(endingQuotesExp, "");
                var bodyQuotesExp:RegExp = /"\s*;\s*"/gm;
                result = result.replace(bodyQuotesExp, ";");
                var splitRegExp:RegExp = /\r*\n+|\n*\r+/gm;
                var lines:Array = result.split(splitRegExp);
                var dataProvider:ArrayCollection = new ArrayCollection();
                for each (var line:String in lines)
                {
                    var lineArray:Array = line.split(";");
                    var dataObject:Object =
                        { counter: lineArray[0], email: lineArray[1], name: lineArray[2], phone: lineArray[3] };
                    dataProvider.addItem(dataObject);
                }
                dg.dataProvider = dataProvider;
            }
        ]]>
        </fx:Script>
    
        <fx:Declarations>
            <fx:String id="csvData">
                <![CDATA["1";"asd@sad.com";"asdasdasd";"1302531993"
    "2";"asdasd@asd.com";"werwetewt" ;  "234235"
    "3";"asdasd@asd.com";"werwetewt";"234235"]]>
            </fx:String>
        </fx:Declarations>
        <mx:DataGrid horizontalCenter="0" id="dg" verticalCenter="0">
            <mx:columns>
                <mx:DataGridColumn dataField="counter" headerText="counter" />
                <mx:DataGridColumn dataField="email" headerText="email" />
                <mx:DataGridColumn dataField="name" headerText="name" />
                <mx:DataGridColumn dataField="phone" headerText="phone" />
            </mx:columns>
        </mx:DataGrid>
    </s:Application>
    

    【讨论】:

      【解决方案2】:

      尝试使用str.replace("\"", "");,其中str 是未修剪的字符串。 AS3 中的String.replace 查找第一个 arg 的所有出现并用第二个 arg 替换它们。如果你愿意,这两个都可以是正则表达式,但在你的情况下,一个简单的转义字符 \" 就可以了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-28
        • 1970-01-01
        • 2015-10-08
        • 1970-01-01
        • 2022-01-10
        • 2020-03-03
        • 1970-01-01
        • 2012-05-15
        相关资源
        最近更新 更多