Вот пример функции как записать данные в таблицу OpenOffice (JScript):
/******************************************************************* Arr - массив массивов * Filename - полный путь к файлу, если такого нет, то он создается * ********************************************************************/ function SaveArrayToCalc(Arr, FileName) { try { //создаем обьект Desktop через который и происходит работа с OpemOffice var oServiceManager = Sys.OleObject("com.sun.star.ServiceManager"); var oDesktop = oServiceManager.createInstance("com.sun.star.frame.Desktop"); // добавляем hidden == true в массив параметров открытия документа (чтоб OpenOffice документ не был виден на экране) var VariantArray = new Array(); var Mystruct = oServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); Mystruct.Name = "Hidden"; Mystruct.Value = true; VariantArray[0] = Mystruct; //создаем документ, (чтобы открыть уже существующий документ, в кач первого параметра необходимо передать путь к нему в виде url) var oDoc = oDesktop.LoadComponentFromURL("private:factory/scalc", "_blank", 0, VariantArray); //получаем первый лист таблицы var oSheet = oDoc["getSheets"]().getByIndex(0); //заполняем первый лист массивом массивов for (var j=0; j<Arr.length; j++) for(var i=0; i<Arr[j].length; i++) oSheet.getCellByPosition(i, j).setString(Arr[j][i]); //сохраняем документ, путь также в виде url oDoc.storeAsURL("file:///"+aqString.Replace(FileName, "\\", "/"), VariantArray); //закрытие документа oDoc.Close(false); } catch(exception) { Log.Warning("Unable to save the data to ods table", exception.description); } }Массив массивов вместо двумерного выбрал потому что может иметь разную длину строк, хотя это уже можно поменять как кому нравится.
Читать данные с таблицы можно аналогичным образом передавая в функции LoadComponentFromURL путь к документу в url формате и используя getString вместо setString.