Skip to content

Instantly share code, notes, and snippets.

@mitsugu
Created November 24, 2023 11:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mitsugu/dae86807f6285f936ad5adbefa996253 to your computer and use it in GitHub Desktop.
Save mitsugu/dae86807f6285f936ad5adbefa996253 to your computer and use it in GitHub Desktop.
Hello World!! written JavaScript for Libreoffice Macro
importClass(Packages.com.sun.star.uno.UnoRuntime);
importClass(Packages.javax.swing.JOptionPane);
importClass(Packages.com.sun.star.sheet.XSpreadsheetDocument);
importClass(Packages.com.sun.star.frame.XModel);
importClass(Packages.com.sun.star.container.XIndexAccess);
importClass(Packages.com.sun.star.table.XCellRange);
importClass(Packages.com.sun.star.table.XCell);
// get Document Object
var doc = UnoRuntime.queryInterface(
XModel,
XSCRIPTCONTEXT.getInvocationContext()
);
if ( !doc ) doc = XSCRIPTCONTEXT.getDocument();
// get Spreadsheet Document
var sDoc = UnoRuntime.queryInterface(XSpreadsheetDocument,doc);
if ( sDoc ){
//get Accesser for sheet group
var sheetsIndexAccess = UnoRuntime.queryInterface(
XIndexAccess,
sDoc.getSheets()
);
// get first sheet object
var sheet = sheetsIndexAccess.getByIndex(0);
// get cell range object
var cells = UnoRuntime.queryInterface(XCellRange, sheet);
// get cell object
var cell = cells.getCellByPosition(0,0);
// get Accesser for cell
var accscell = UnoRuntime.queryInterface(XCell,cell);
accscell.setFormula("Hello World!!");
JOptionPane.showMessageDialog(
null,
accscell.getFormula()
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment