2. Agenda
● Overview
● Authorization;
● Work with worksheet;
● List-based feeds;
● Cell-based feeds;
● Questions.
3. What we need to start
● jdk 1.5 or greater;
● gdata-java-client jars;
● java mail API 1.4 or greater;
● javaBeans Activation Framework.
4. Overview
Creating
spreadsheet Set spreadsheet
Authorizing
service URL and name
Get row or cell Get spreadsheet
Get worksheet
feed
5. Authorization
SpreadsheetService service =
new SpreadsheetService("service name"); - create spreadsheet
service
service.setUserCredentials("username", "password"); - send user
credentials
6. Getting spreadsheet feed
String 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.
9. Working with worksheet
WorksheetEntry 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;
10. Working with worksheet
title = worksheet.getTitle().getPlainText();
eTag = worksheet.getEtag();
if (title.equals("New worksheet")
&& eTag.equals(worksheetETag)) {
try {
worksheet.delete();
} catch .... - delete worksheet;
11. List-based feeds
URL 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());
}
12. List based working
URL 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...);
}
13. Add row
ListFeed 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
14. Delete row
ListFeed listFeed = service.getFeed(listFeedUrl, ListFeed.class);
for (ListEntry row : listFeed.getEntries()) {
if (...) {
row.delete();
}
15. Cell-based feeds
URL 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());
}
16. Cell based working
URL 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();
}
17. Cell based working
URL 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(...)
18. Cell data manipulation
if (cell.getTitle().getPlainText().equals("A1")){
cell.changeInputValueLocal("123"); - set value to cell
cell.update();
}
.....
cell.changeInputValueLocal("=SUM(A1:B1)"); - set cell formula