Мой текущий код, который позволяет приложению загружать данные из файла Excel в приложение AIR, выглядит следующим образом:
import lib.xlsxreader.Worksheet;
import lib.xlsxreader.XLSXLoader;
public class Main extends MovieClip
{
private var fileGet: File = new File();
private var xloader: XLSXLoader = new XLSXLoader();
public function Main()
{
fileGet = File.applicationDirectory;
fileGet.addEventListener(Event.SELECT, selectExcel)
xloader.addEventListener(Event.COMPLETE, uploadComplete);
button.addEventListener(MouseEvent.CLICK, selectFile);
}
private function selectFile(e: MouseEvent): Void
{
fileGet.browseForOpen("Select File");
xloader.load(fileGet.nativePath);
}
private function uploadComplete(e: Event): Void
{
ws = xloader.worksheet("[Name of the worksheet]");
rowStart = 7;
rowEnd = ws.rows;
for (var i = rowStart; i <= rowEnd; i++)
{
//transferring data from excel into sqlite
}
}
}
Приведенный выше код не является моим полным кодом, я просто сокращаю его до соответствующего кода , Дайте мне знать, если вам нужна дополнительная информация.
В данный момент код передает данные из 30 столбцов и 1000 ++ строк из файла Excel в течение примерно 10 минут, что довольно медленно и заставляет приложение AIR выглядеть «зависшим» или «заморозить» во время загрузки.
До меня дошло, что я могу использовать Worker API в Actionscript для ускорения этого процесса, но для жизни я не могу точно понять, как реструктурировать мой код, чтобы разрешить Worker API в моем коде.
Я прочитал пример из здесь , здесь и здесь , но я все еще не могу сделать в этом вопросе.
Насколько я понимаю, мой код //transferring data from excel into sqlite
должен быть включен в класс CountResult из этого примера ...?
Может кто-нибудь помочь мне в этой проблеме. Обратите внимание, что я программист-самоучка, пытающийся научиться создавать приложение dekstop с помощью Adobe Animate.