Guest User

Untitled

a guest
Jul 16th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.23 KB | None | 0 0
  1. unit libreofficeexport;
  2.  
  3. {$IFDEF FPC}
  4.  {$MODE Delphi}
  5. {$ELSE}
  6.  {$APPTYPE CONSOLE}
  7. {$ENDIF}
  8. interface
  9. uses SysUtils, Variants, ComObj;
  10. procedure createDocument;
  11. procedure writeCellValue(col,row:integer;value:longint);
  12. procedure writeCellString(col,row:integer;str:widestring);
  13.  
  14. implementation
  15. var Server     : Variant;
  16.   Desktop    : Variant;
  17.   Document   : Variant;
  18.  
  19. procedure createDocument;
  20. begin;
  21. Desktop := Server.CreateInstance('com.sun.star.frame.Desktop');
  22. Document := Desktop.LoadComponentFromURL('private:factory/scalc', '_blank', 0, VarArrayCreate([0, -1], varVariant));
  23. end;
  24.  
  25. procedure writeCellValue(col,row:integer;value:longint);
  26. var Cell,Sheet:Variant;
  27. begin
  28. Sheet := Document.getSheets.getByIndex(0);
  29. Cell := Sheet.GetCellByPosition(col,row);
  30. Cell.setValue(value);
  31. end;
  32.  
  33. procedure writeCellString(col,row:integer;str:widestring);
  34. var Cell,Sheet:Variant;
  35. begin
  36. Sheet := Document.getSheets.getByIndex(0);
  37. Cell := Sheet.GetCellByPosition(col,row);
  38. Cell.setString(str);
  39. end;
  40.  
  41. initialization
  42. begin
  43.   if Assigned(InitProc) then
  44.     TProcedure(InitProc);
  45.  
  46.   try
  47.     Server := CreateOleObject('com.sun.star.ServiceManager');
  48.   except
  49.     WriteLn('Unable to start OO.');
  50.     Exit;
  51.   end;
  52. end;
  53. end.
Add Comment
Please, Sign In to add comment