use of com.google.api.services.sheets.v4.model.SheetProperties in project collect by opendatakit.
the class SheetsHelper method addSheet.
public void addSheet(String spreadsheetId, String sheetName) throws IOException {
AddSheetRequest addSheetRequest = new AddSheetRequest();
addSheetRequest.setProperties(new SheetProperties().setTitle(sheetName));
Request request = new Request();
request.setAddSheet(addSheetRequest);
sheetsService.batchUpdate(spreadsheetId, Collections.singletonList(request));
}
use of com.google.api.services.sheets.v4.model.SheetProperties in project collect by opendatakit.
the class SheetsHelper method getSpreadsheet.
/**
* Checks whether the selected google account has sufficient permissions
* to modify the given spreadsheetId. If yes, then returns complete spreadsheet
* otherwise throws exception
*/
public Spreadsheet getSpreadsheet(String spreadsheetId) throws IOException {
/*
* Read permission check
*
* To check read permissions, we are trying to fetch the complete spreadsheet using the
* given spreadsheet id
*/
// fetching the google spreadsheet
Spreadsheet spreadsheet = sheetsService.getSpreadsheet(spreadsheetId);
String spreadsheetFileName = spreadsheet.getProperties().getTitle();
/*
* Write permission check
*
* To check write permissions, we are trying to overwrite the name of the spreadsheet with
* the same name
*
* Todo 22/3/17 Find a better way to check the write permissions
*/
// creating a request to update name of spreadsheet
SpreadsheetProperties sheetProperties = new SpreadsheetProperties().setTitle(spreadsheetFileName);
List<Request> requests = new ArrayList<>();
requests.add(new Request().setUpdateSpreadsheetProperties(new UpdateSpreadsheetPropertiesRequest().setProperties(sheetProperties).setFields("title")));
// updating the spreadsheet with the given id
sheetsService.batchUpdate(spreadsheetId, requests);
return spreadsheet;
}
use of com.google.api.services.sheets.v4.model.SheetProperties in project collect by opendatakit.
the class SheetsHelper method resizeSpreadSheet.
/**
* Resize the column size of the provided sheetId in the google spreadsheet
*
* @param spreadsheetId unique id of the spreadsheet
* @param sheetId the index of the sheet which is to be resized
* @param columnSize the new column size of the sheet
* @throws IllegalArgumentException Providing sheetId or column size less than zero throws this exception
* Sheet Id is basically index of the sheet starting from zero
* Similarly, the value for the column size can't be negative
* @throws IOException Throws this exception if the google spreadsheet cannot be fetched
* due to insufficient permissions or invalid sheet id
*/
public void resizeSpreadSheet(String spreadsheetId, int sheetId, int columnSize) throws IllegalArgumentException, IOException {
if (sheetId < 0) {
throw new IllegalArgumentException("Sheet Id should be greater than or equal to 0");
}
if (columnSize < 1) {
throw new IllegalArgumentException("Column size should be greater than 0");
}
// create grid properties with the new column size
GridProperties gridProperties = new GridProperties().setColumnCount(columnSize);
// create sheet properties for the first sheet in the spreadsheet
SheetProperties sheetProperties = new SheetProperties().setSheetId(sheetId).setGridProperties(gridProperties);
// Updates properties of the sheet with the specified sheetId
UpdateSheetPropertiesRequest updateSheetPropertyRequest = new UpdateSheetPropertiesRequest().setProperties(sheetProperties).setFields("gridProperties.columnCount");
// generate request
List<Request> requests = new ArrayList<>();
requests.add(new Request().setUpdateSheetProperties(updateSheetPropertyRequest));
// send the API request
sheetsService.batchUpdate(spreadsheetId, requests);
}
Aggregations