http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Working_With_Spreadsheet_Documents
を読む。
Spreadsheet Document
スプレッドシートドキュメントはcom.sun.star.sheet.SpreadsheetDocumentで表現される。
SpreadsheetDocumentは少なくとも1つの要素を持つSpreadsheetオブジェクトのコレクションからなる。
com.sun.star.sheet.XSpreadsheetDocumentのgetSheets()メソッドを呼べば、
com.sun.star.sheet.XSpreadsheetsを取得できる。
getSheets()メソッドでXSpreadsheetsを取得すれば、3つの異なる方法でシートにアクセスすることを可能にする。
- インデックスによる方法
- Enumによる方法
- 名前による方法
の3つ。
インデックスによる方法
com.sun.star.container.XIndexAccessというインタフェースが提供されているので、
このインタフェースを使用し、シートにアクセスする。
public com.sun.star.sheet.XSpreadsheet getSpreadsheet(
com.sun.star.sheet.XSpreadsheetDocument xDocument, int nIndex) {
// Collection of sheets
com.sun.star.sheet.XSpreadsheets xSheets = xDocument.getSheets();
com.sun.star.sheet.XSpreadsheet xSheet = null;
try {
com.sun.star.container.XIndexAccess xSheetsIA = (com.sun.star.container.XIndexAccess)
UnoRuntime.queryInterface(com.sun.star.container.XIndexAccess.class, xSheets);
xSheet = (com.sun.star.sheet.XSpreadsheet) xSheetsIA.getByIndex(nIndex);
} catch (Exception ex) {
}
return xSheet;
}
Enumによる方法
com.sun.star.sheet.SpreadsheetsEnumerationというサービスが提供されているので、
このサービスを使用してシートにアクセスする。
名前による方法
com.sun.star.container.XNameContainerを派生してcom.sun.star.sheet.XSpreadsheetsが提供されているので、XNameContainerのメソッドを使用して、名前による指定でシートにアクセスする。
public com.sun.star.sheet.XSpreadsheet getSpreadsheet(
com.sun.star.sheet.XSpreadsheetDocument xDocument,
String aName) {
// Collection of sheets
com.sun.star.sheet.XSpreadsheets xSheets = xDocument.getSheets();
com.sun.star.sheet.XSpreadsheet xSheet = null;
try {
com.sun.star.container.XNameAccess xSheetsNA = (com.sun.star.container.XNameAccess)
UnoRuntime.queryInterface(com.sun.star.container.XNameAccess.class, xSheets);
xSheet = (com.sun.star.sheet.XSpreadsheet) xSheetsNA.getByName(aName);
} catch (Exception ex) {
}
return xSheet;
}
さらに、XSpreadsheetには以下のようなメソッドも存在する。
- insertNewByName() - 新しい空のシートを指定した名前で指定した位置に追加する。
- moveByName() - シートを指定した名前で指定した位置に移動する。
- copyByName() - コピーする。
.
0 コメント:
コメントを投稿