21
Overview of Google Spreadsheet API for Java Nazarii Kostiv

Overview of Google spreadsheet API for Java by Nazar Kostiv

Embed Size (px)

Citation preview

Page 1: Overview of Google spreadsheet API for Java by Nazar Kostiv

Overview of Google Spreadsheet API for Java

Nazarii Kostiv

Page 2: Overview of Google spreadsheet API for Java by Nazar Kostiv

Agenda● Overview● Authorization;● Work with worksheet;● List-based feeds;● Cell-based feeds;● Questions.

Page 3: Overview of Google spreadsheet API for Java by Nazar Kostiv

What we need to start● jdk 1.5 or greater;

● gdata-java-client jars;

● java mail API 1.4 or greater;

● javaBeans Activation Framework.

Page 4: Overview of Google spreadsheet API for Java by Nazar Kostiv

Overview

Authorizing Creating

spreadsheet service

Set spreadsheet URL and name

Get worksheet Get spreadsheet feedGet row or cell

Page 5: Overview of Google spreadsheet API for Java by Nazar Kostiv

Authorization SpreadsheetService service =

new SpreadsheetService("service name"); - create spreadsheet service service.setUserCredentials("username", "password"); - send user credentials

Page 6: Overview of Google spreadsheet API for Java by Nazar Kostiv

Getting spreadsheet feedString SPREADSHEET_URL = "https://spreadsheets.google.com/feeds/spreadsheets/private/full"; URL sheetListUrl =

new URL(SPREADSHEET_URL);- set spreadsheer URL; SpreadsheetQuery query = new SpreadsheetQuery(sheetListUrl);query.setTitleQuery("Spreadsheet name"); - set spreadsheet name; SpreadsheetFeed feed =

service.getFeed(query, SpreadsheetFeed.class); - get spreadsheet feed with entries.

Page 7: Overview of Google spreadsheet API for Java by Nazar Kostiv

Worksheet List<SpreadsheetEntry> spreadsheetEntries = feed.getEntries();SpreadsheetEntry spreadsheet = spreadsheetEntries.get(0); - get spreadsheet List<WorksheetEntry> worksheets =

spreadsheetEntry.getWorksheets(); WorksheetEntry worksheet = worksheets.get(0); - get worksheet;

Page 8: Overview of Google spreadsheet API for Java by Nazar Kostiv

Worksheet infoList<WorksheetEntry> worksheets = SpreadsheetDemoUtil.getWorksheets();

for (WorksheetEntry worksheet : worksheets) {System.out.println("Worksheet name: "

+ worksheet.getTitle().getPlainText() + ", Cols: "+ worksheet.getColCount() + ", Rows: "+ worksheet.getRowCount());

} Worksheet name: Worksheet 1, Cols: 20, Rows: 93Worksheet name: Worksheet 2, Cols: 20, Rows: 50Worksheet name: New worksheet, Cols: 20, Rows: 100

Page 9: Overview of Google spreadsheet API for Java by Nazar Kostiv

Working with worksheetWorksheetEntry worksheet = new WorksheetEntry();URL worksheetFeedUrl =

spreadsheetEntry.getWorksheetFeedUrl();insertedWorksheet = service.insert(

worksheetFeedUrl, worksheet); - add new worksheet;worksheetETag = insertedWorksheet.getEtag(); worksheet.setColCount(30);worksheet.update(); - update worksheet;

Page 10: Overview of Google spreadsheet API for Java by Nazar Kostiv

Working with worksheettitle = worksheet.getTitle().getPlainText();eTag = worksheet.getEtag();if (title.equals("New worksheet")

&& eTag.equals(worksheetETag)) {try {

worksheet.delete();} catch .... - delete worksheet;

Page 11: Overview of Google spreadsheet API for Java by Nazar Kostiv

List-based feedsURL listFeedUrl = worksheetEntry.getListFeedUrl();ListFeed feed =

service.getFeed(listFeedUrl, ListFeed.class); - get list-based feed with list of rows

for (ListEntry entry : feed.getEntries()) {

System.out.println(entry.getTitle().getPlainText());}

Page 12: Overview of Google spreadsheet API for Java by Nazar Kostiv

List based workingURL listFeedUrl = new URI(null, null,

worksheet.getListFeedUrl().toString(),"sq=width>25 and height<175", null).toURL();

listFeed = service.getFeed(listFeedUrl, ListFeed.class);for (ListEntry row : listFeed.getEntries()) {

System.out.println(row.get...);}

Page 13: Overview of Google spreadsheet API for Java by Nazar Kostiv

Add rowListFeed listFeed = service.getFeed(listFeedUrl, ListFeed.class);ListEntry row = new ListEntry();

row.getCustomElements().setValueLocal("Component", "New component");

row.getCustomElements().setValueLocal("width", "25");row.getCustomElements().setValueLocal("height", "19");

row = service.insert(listFeedUrl, row); - insert new row

Page 14: Overview of Google spreadsheet API for Java by Nazar Kostiv

Delete row ListFeed listFeed = service.getFeed(listFeedUrl, ListFeed.class); for (ListEntry row : listFeed.getEntries()) {

if (...) {row.delete();

}

Page 15: Overview of Google spreadsheet API for Java by Nazar Kostiv

Cell-based feedsURL cellFeedUrl = worksheetEntry.getCellFeedUrl();CellFeed feed =

service.getFeed(celFeedUrl, CellFeed.class); - get cell-based feed with list of cells

for (CellEntry cell : feed.getEntries()) { System.out.println(entry.getTitle().getPlainText());}

Page 16: Overview of Google spreadsheet API for Java by Nazar Kostiv

Cell based workingURL cellFeedUrl = new URI(null, null,

worksheet.getCellFeedUrl().toString(),"?min-row=2&min-col=4&max-col=4",

null).toURL(); CellFeed cellFeed = service.getFeed(cellFeedUrl, CellFeed.class); for (CellEntry cell : cellFeed.getEntries()) {

System.out.println(cell.getTitle().getPlainText();}

Page 17: Overview of Google spreadsheet API for Java by Nazar Kostiv

Cell based workingURL cellFeedUrl = mainWorksheet.getCellFeedUrl(); CellQuery cellQuery = new CellQuery(cellFeedUrl); cellQuery.setMinimumCol(2); cellQuery.setMaximumCol(4); cellQuery.setMinimumRow(4); cellQuery.setMaximumRow(4); CellFeed cellFeed = null; try { cellFeed = service.query(cellQuery, CellFeed.class);

} catch(...)

Page 18: Overview of Google spreadsheet API for Java by Nazar Kostiv

Cell data manipulationif (cell.getTitle().getPlainText().equals("A1")){

cell.changeInputValueLocal("123"); - set value to cellcell.update();

} .....

cell.changeInputValueLocal("=SUM(A1:B1)"); - set cell formula

Page 19: Overview of Google spreadsheet API for Java by Nazar Kostiv

Questions?

Page 20: Overview of Google spreadsheet API for Java by Nazar Kostiv

Links● https://developers.google.com/google-apps/spreadsheets/

● https://developers.google.com/google-apps/documents-list/

● https://developers.google.com/apps-script/guide

Page 21: Overview of Google spreadsheet API for Java by Nazar Kostiv

Nazarii KostivEmail: [email protected]