Last active
October 3, 2019 06:01
-
-
Save PrashantBhatasana/ecee5233653ec503cba26ef803966132 to your computer and use it in GitHub Desktop.
This the java class for read google sheet in selenium https://medium.com/appgambit/read-data-from-google-sheet-with-selenium-ans-google-sheets-api-c5d10595f781
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package utility; | |
import com.google.api.client.auth.oauth2.Credential; | |
import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; | |
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; | |
import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; | |
import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; | |
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; | |
import com.google.api.client.http.javanet.NetHttpTransport; | |
import com.google.api.client.json.JsonFactory; | |
import com.google.api.client.json.jackson2.JacksonFactory; | |
import com.google.api.client.util.store.FileDataStoreFactory; | |
import com.google.api.services.sheets.v4.Sheets; | |
import com.google.api.services.sheets.v4.SheetsScopes; | |
import com.google.api.services.sheets.v4.model.ValueRange; | |
import java.io.FileNotFoundException; | |
import java.io.IOException; | |
import java.io.InputStream; | |
import java.io.InputStreamReader; | |
import java.security.GeneralSecurityException; | |
import java.util.Collections; | |
import java.util.List; | |
public class GetSheetData { | |
private static final String APPLICATION_NAME = "< Application Name of Google API >"; | |
private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); | |
private static final String TOKENS_DIRECTORY_PATH = "tokens"; | |
/** | |
* Global instance of the scopes required by this quickstart. If modifying these | |
* scopes, delete your previously saved tokens/ folder. | |
*/ | |
private static final List<String> SCOPES = Collections.singletonList(SheetsScopes.SPREADSHEETS_READONLY); | |
private static final String CREDENTIALS_FILE_PATH = "< Your client_secret.json file path >"; | |
/** | |
* Creates an authorized Credential object. | |
* | |
* @param HTTP_TRANSPORT The network HTTP Transport. | |
* @return An authorized Credential object. | |
* @throws IOException If the credentials.json file cannot be found. | |
*/ | |
private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) throws IOException { | |
// Load client secrets. | |
InputStream in = GetSheetData.class.getResourceAsStream(CREDENTIALS_FILE_PATH); | |
if (in == null) { | |
throw new FileNotFoundException("Resource not found: " + CREDENTIALS_FILE_PATH); | |
} | |
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in)); | |
// Build flow and trigger user authorization request. | |
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(HTTP_TRANSPORT, JSON_FACTORY, | |
clientSecrets, SCOPES) | |
.setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) | |
.setAccessType("offline").build(); | |
LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); | |
return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); | |
} | |
/** | |
* Prints the names and majors of students in a sample spreadsheet: | |
* https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit | |
*/ | |
public static List<List<Object>> getData(String range) throws IOException, GeneralSecurityException { | |
// Build a new authorized API client service. | |
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); | |
final String spreadsheetId = "< Your google sheet ID >"; | |
Sheets service = new Sheets.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT)) | |
.setApplicationName(APPLICATION_NAME).build(); | |
ValueRange response = service.spreadsheets().values().get(spreadsheetId, range).execute(); | |
List<List<Object>> values = response.getValues(); | |
if (values == null || values.isEmpty()) { | |
System.out.println("No data found."); | |
return null; | |
} else { | |
return values; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment