チェンジセット 28
- コミット日時:
- 2007/06/19 20:12:14 (6 年前)
- ファイル:
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
kujirahand/as3/com/kujirahand/CSVUtils.as
r27 r28 1 1 /** 2 2 * Excel 準拠の CSV ファイルを配列変数に変換するクラス 3 * @author クジラ飛行机(http://kujirahand.com)4 3 */ 5 /* 6 * SVNリポジトリ ... http://snippets.libspark.org/svn/as3/com/kujirahand 7 * 最新版の入手は... http://snippets.libspark.org/svn/kujirahand/as3/com/kujirahand/CSVUtils.as 8 */ 4 9 5 package com.kujirahand 10 6 { … … 12 8 13 9 /** 14 * CSV 処理に関数する手続きをまとめたもの 15 * 区切り文字 SPLITTER は、必ず1文字にすること 10 * CSV ファイル(Excel準拠)のテキストを、Array や ArrayCollection に変換するもの。 11 * @author クジラ飛行机(http://kujirahand.com) 12 * @langversion ActionScript 3.0 13 * @example CSV形式のテキストを配列に変換する 14 * <listing version="3.0" > 15 * var csv_str = "name, value\naaa,30\nbbbb,50\ncccc,30\n"; 16 * var csv_ary:Array = CSVUtils.CsvToArray(csv_str); // CSV→Array 17 * trace( CSVUtils.ArrayToCsv(csv_ary) ); // Array→CSV 18 * </listing> 19 * @example DataGrid に CSVテキストを表示する 20 * <listing version="3.0" > 21 * // <mx:DataGrid id="data_grid"> 22 * // <mx:DataGridColumn dataField="name"/> 23 * // <mx:DataGridColumn dataField="tel"/> 24 * // <mx:DataGridColumn dataField="memo"/> 25 * // </mx:DataGrid> 26 * var csv_str = "name, tel, memo\naaa,03-xxx-xxxx,memo\nbbbb,03-xxx-xxxx\n"; 27 * var csv_ary:Array = CSVUtils.CsvToArray(csv_str); // CSV→Array 28 * var mapping:Array = ['name', 'tel', 'memo']; 29 * var csv_ac:ArrayCollection; 30 * csv_ac = CSVUtils.ArrayToArrayCollection(csv_ary, mapping, true); 31 * data_grid.dataProvider = csv_ac; // set to DataGrid 32 * </listing> 33 * @see http://snippets.libspark.org/svn/kujirahand/as3/com/kujirahand/CSVUtils.as 最新版ダウンロード(SVNリポジトリ) 34 * @see http://kujirahand.com/as3/com/kujirahand/CSVUtils.html ASDoc 16 35 */ 17 36 public class CSVUtils 18 37 { 19 38 // 静的メソッド 20 /** CSV の 区切り記号*/39 /** CSV の列の区切り記号(1文字のみ対応) */ 21 40 public static var DEFAULT_SPLITTER:String = ","; 41 /** 行の区切り記号は \n で固定 */ 22 42 public static const LINE_SPLLITER:String = "\n"; 23 43 … … 50 70 } 51 71 /** 52 * CSVファイルをデータグリッドに表示するために、ArrayCollectionに変換する53 * @param csv_ary 二次元配列変数54 * @param mapping マッピングするフィールド名の配列55 * @param topline_is_header 1行目をヘッダとして利用しているなら true にすると削る56 * @return 変換された ArrayCollection57 */72 * CSVファイルをデータグリッドに表示するために、ArrayCollectionに変換する 73 * @param csv_ary 二次元配列変数 74 * @param mapping マッピングするフィールド名の配列 75 * @param topline_is_header 1行目をヘッダとして利用しているなら true にすると削る 76 * @return 変換された ArrayCollection 77 */ 58 78 public static function ArrayToArrayCollection(csv_ary:Array, 59 79 mapping:Array, topline_is_header:Boolean = false):ArrayCollection { 60 80 if (topline_is_header) { // 1行目をヘッダとして使うなら削る 61 csv_ary = csv_ary.splice(0, 1);81 csv_ary.splice(0, 1); 62 82 } 63 83 var result_ary:ArrayCollection = new ArrayCollection(); … … 76 96 } 77 97 /** 78 * 二次元配列をCSV形式に変換する79 * @param csv_ary 配列変数80 * @param splitter 区切り記号81 * @param use_escape 必ず ダブルコーテーションで囲う場合82 * @return CSV形式の文字列83 */98 * 二次元配列をCSV形式に変換する 99 * @param csv_ary 配列変数 100 * @param splitter 区切り記号 101 * @param use_escape 必ず ダブルコーテーションで囲う場合 102 * @return CSV形式の文字列 103 */ 84 104 public static function ArrayToCsv(csv_ary:Array, splitter:String, 85 105 use_escape:Boolean = false):String { … … 101 121 } 102 122 /** 103 * 文字列を ".." で括る必要があるかチェックする104 */123 * 文字列を ".." で括る必要があるかチェックする 124 */ 105 125 public static function hasEscapeChar(cell:String, splitter:String):Boolean { 106 126 if (cell.indexOf('"') >= 0) return true; … … 113 133 } 114 134 /** 115 * 文字列を ".." で括ってエスケープする116 */135 * CSVのセル(文字列)を ".." で括ってエスケープする 136 */ 117 137 public static function escapeCell(cell:String):String { 118 138 cell = replaceStr(cell, '"', '""');

