How to programmatically create a Google Docs spreadsheet WITH CONTENT?

后端 未结 3 2087
小蘑菇
小蘑菇 2021-01-05 04:19

I have found multiple StackOverflow questions dealing with how to create or edit Google Doc spreadsheets using the Google Spreadsheets API, or older API\'s. However, this S

3条回答
  •  猫巷女王i
    2021-01-05 04:54

    with reference to the new spreadsheet API v4

    I have The Best and easy method:

    Step 1

    Create AsyncTask class, pass the 'GoogleAccountCredential credential' to it.

    Step 2

    Use the API to create the a new SpreadSheet.

    CODE

     private class MakeRequestTask extends AsyncTask {
        private com.google.api.services.sheets.v4.Sheets mService = null;
    
        // The constructor
        MakeRequestTask(GoogleAccountCredential credential) {
            HttpTransport transport = AndroidHttp.newCompatibleTransport();
            JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
            mService = new com.google.api.services.sheets.v4.Sheets.Builder(
                    transport, jsonFactory, credential)
                    .setApplicationName("Android spreadsheet client")
                    .build();
        }                    
    
        protected void doInBackground(Void... params) {
    
            // function to create the spreadsheet
            creadSpreadSheet();
        }
    
        // creates a new spreadsheet
        private void creadSpreadSheet() throws IOException{
            com.google.api.services.sheets.v4.model.Spreadsheet mSpreadsheet, newSpreadSheet;
            mSpreadsheet = new Spreadsheet();
            SpreadsheetProperties spreadsheetProperties = new SpreadsheetProperties();
            spreadsheetProperties.setTitle("Demo SpreadSheet");// name of your spreadsheet
            mSpreadsheet = mSpreadsheet.setProperties(spreadsheetProperties);
    
    
            newSpreadSheet = mService.spreadsheets()
                    .create(mSpreadsheet)
                    .execute();
    
            // this 'newSpreadsheet' is ready to use for write/read operation.
        }
    

    }

    NOTE: Don't forget to put 'SheetsScopes.SPREADSHEETS' scope in the 'credential' in onCreate().

    String[] SCOPES = { SheetsScopes.SPREADSHEETS};
        credential = GoogleAccountCredential.usingOAuth2(
                getApplicationContext(), Arrays.asList(SCOPES))
                .setBackOff(new ExponentialBackOff());
    

提交回复
热议问题