Autor Zpráva
FlashManiac
Profil
Cyao, měl bych jednu otázečku.. dokázal by Flash,potažmo AS načítat nějakým způsobem data z *.xls souboru používaného MS Excelem? pokud ano, jak? Musela by být ta data v Excelu spešl na formátovaná? THX za postřehy..
zbystr
Profil *
Zdravim
pokud jsi to uloříš jako CSV .....tak pote použij toto:

Třída:

import mx.utils.Delegate;
import mx.events.EventDispatcher;
import com.shortybmc.document.CSVTypedArray;

class com.shortybmc.document.CSV
{

private var source:XML;
private var location:String;

private var csv:Array;
private var valueDelimiter:String;
private var datasetDelimiter:String;

private var dispatchEvent:Function;
public var addEventListener:Function;
public var removeEventListener:Function;

function CSV ()
{
EventDispatcher.initialize (this);
}

public function init (_valueDelimiter:String, _datasetDelimiter:String):Void
{
if (arguments[0] && arguments[1])
{
dispatchEvent ({type:'status', code:'initialize'});
csv = new Array ();
source = new XML ();
source.ignoreWhite = true;
valueDelimiter = arguments[0];
datasetDelimiter = arguments[1];
source.onLoad = Delegate.create (this, onLoad);
}
else
{
dispatchEvent ({type:'fault', code:'missed arguments'});
}
}

public function load (_location:String):Void
{
if (arguments[0])
{
location = arguments[0];
source.load (location);
dispatchEvent ({type:'status', code:'loading'});
}
else
{
dispatchEvent ({type:'fault', code:'missed argument'});
}
}

private function onLoad (success:Boolean):Void
{
if (arguments[0])
{
dispatchEvent ({type:'status', code:'complete loaded'});
transform ();
}
else
{
dispatchEvent ({type:'fault', code:'404'});
}
}

private function transform ():Void
{
dispatchEvent ({type:'status', code:'transform/parse'});
var a:Array = new Array ();
var s:String = source.toString ();
a = s.split (datasetDelimiter);
for (var i in a)
{
a[i] = a[i].toString ().split (valueDelimiter);
if (a[i][0] == '\r' || a[i][0] == '\n')
{
a.splice (Number (i), 1);
}
a[i][a[i].length - 1] = a[i][a[i].length - 1].split ('\r').join ('');
}
// if you dont need a typed array, write: csv = a
csv = CSVTypedArray.get (a);
result ();
}

private function result ():Void
{
dispatchEvent ({type:'result', code:'result', result:csv});
}
}



Použití:


import com.shortybmc.document.CSV;
var document:CSV = new CSV ();
var onStatus:Function = function (o:Object)
{
trace ('[CSV][Status] ' + o.code);
};
var onFault:Function = function (o:Object)
{
trace ('[CSV][Fault] ' + o.code);
};
var onResult:Function = function (o:Object)
{
trace ('[CSV][Result] ' + o.code);
var i:Number = -1;
while (++i < o.result.length)
{
trace (o.result[i]);
}
};
document.addEventListener ('status', onStatus);
document.addEventListener ('fault', onFault);
document.addEventListener ('result', onResult);

document.init (';', '\n');
document.load ('standard.csv');





ZbySTr
FlashManiac
Profil
hmm hezký kódeček... díky...XD
Ankora
Profil *
Ahojte, pekný kód, ale ako je to so zapisovaním do takého súboru?

Zatiaľ síce veľmi nerozumiem ani tomuto kódu, ale ja sa cez to prehryziem. ;-)

POZNÁMKA MODERÁTORA: Nepřidávejte do přízpěvků odkazy, které se k němu nevztahují
Hanz
Profil
Ankora
Flash zapisovat nemůže. Musíš použít například PHP
shorty
Profil *
and and here is the orig. thread.

hi all ;)

--shorty
Toto téma je uzamčeno. Odpověď nelze zaslat.

0