Overview of Google spreadsheet API for Java by Nazar Kostiv

21
Overview of Google Spreadsheet API for Java Nazarii Kostiv

Transcript of Overview of Google spreadsheet API for Java by Nazar Kostiv

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]