Bagaimana Anda mengakses spreadsheet google dari skrip aplikasi?

Google Apps Script memberi Anda kemampuan untuk membuat fungsionalitas khusus dalam dokumen Google Anda, termasuk Google Sheets, Google Docs, dan lainnya. Dengan CData Connect Server, Anda mendapatkan antarmuka MySQL untuk salah satu dari 200+ sumber yang didukung oleh CData, termasuk Access. Protokol MySQL secara alami didukung melalui layanan JDBC di Google Apps Script, jadi dengan memanfaatkan Connect Server, Anda mendapatkan akses ke data Access langsung di dalam dokumen Google Anda

Artikel ini menunjukkan cara membuat database virtual untuk Access di Connect Server dan menyediakan contoh skrip untuk memproses data Access di Google Spreadsheet

Buat Database MySQL Virtual untuk Data Akses

CData Connect Server menggunakan antarmuka langsung, tunjuk-dan-klik untuk terhubung ke sumber data dan menghasilkan API

  1. Login ke Connect Server dan klik Database.
    Bagaimana Anda mengakses spreadsheet google dari skrip aplikasi?

    2. Mendeklarasikan Variabel Kelas

    Buat beberapa variabel kelas agar tersedia untuk setiap fungsi yang dibuat dalam skrip

    //replace the variables in this block with real values as needed
    var address = 'CONNECT_SERVER_URL:port';
    var user = 'CONNECT_USER';
    var userPwd = 'CONNECT_PASSWORD';
    var db = 'accessdb';
    var serverSslCert = '-----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----';
    var clientSslCert = '-----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----';
    var clientSslKey  = '-----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----';
    
    var dbUrl = 'jdbc:mysql://' + address + '/' + db + '?useSSL=true';
    

    3. Tambahkan Opsi Menu

    Fungsi ini menambahkan opsi menu ke Google Sheet Anda, memungkinkan Anda menggunakan UI untuk memanggil fungsi Anda

    function onOpen() {
      var spreadsheet = SpreadsheetApp.getActive();
      var menuItems = [
        {name: 'Write data to a sheet', functionName: 'connectToAccessData'}
      ];
      spreadsheet.addMenu('Access Data', menuItems);
    } 
    
    _
    Bagaimana Anda mengakses spreadsheet google dari skrip aplikasi?

    4. Tulis Fungsi Pembantu

    Fungsi ini digunakan untuk menemukan baris kosong pertama dalam spreadsheet

    /*
     * Finds the first empty row in a spreadsheet by scanning an array of columns
     * @return The row number of the first empty row.
     */
    function getFirstEmptyRowByColumnArray(spreadSheet, column) {
      var column = spreadSheet.getRange(column + ":" + column);
      var values = column.getValues(); // get all data in one call
      var ct = 0;
      while ( values[ct] && values[ct][0] != "" ) {
        ct++;
      }
      return (ct+1);
    }
    

    5. Tulis Fungsi untuk Menulis Data Akses ke Spreadsheet

    Fungsi di bawah ini menulis data Access, menggunakan fungsi JDBC Skrip Google Apps untuk terhubung ke Server Terhubung, SELECT data, dan mengisi spreadsheet. Saat skrip dijalankan, dua kotak input akan muncul

    Yang pertama meminta pengguna untuk memasukkan nama lembar untuk menampung data (jika spreadsheet tidak ada, fungsi membuatnya)

    Bagaimana Anda mengakses spreadsheet google dari skrip aplikasi?

    Yang kedua meminta pengguna untuk memasukkan nama tabel Access untuk dibaca. Jika tabel yang tidak valid dipilih, pesan kesalahan akan muncul dan fungsi akan ditutup

    Bagaimana Anda mengakses spreadsheet google dari skrip aplikasi?

    Perhatikan, meskipun fungsi dirancang untuk digunakan sebagai opsi menu, Anda dapat memperluasnya untuk digunakan sebagai rumus spreadsheet

    /*
     * Reads data from a specified Access 'table' and writes it to the specified sheet.
     *    (If the specified sheet does not exist, it is created.)
     */
    function connectToAccessData() {
      var thisWorkbook = SpreadsheetApp.getActive();
    
      //select a sheet and create it if it does not exist
      var selectedSheet = Browser.inputBox('Which sheet would you like the data to post to?',Browser.Buttons.OK_CANCEL);
      if (selectedSheet == 'cancel')
        return;
    
      if (thisWorkbook.getSheetByName(selectedSheet) == null)
        thisWorkbook.insertSheet(selectedSheet);
      var resultSheet = thisWorkbook.getSheetByName(selectedSheet);
      var rowNum = 2;
    
      //select a Access 'table'
      var table = Browser.inputBox('Which table would you like to pull data from?',Browser.Buttons.OK_CANCEL);
      if (table == 'cancel')
        return;
    
      var conn = Jdbc.getConnection(dbUrl, {
        user: user, 
        password: userPwd, 
        _serverSslCertificate: serverSslCert,
        _clientSslCertificate: clientSslCert,
        _clientSslKey:         clientSslKey
      );
    
      //confirm that var table is a valid table/view
      var dbMetaData = conn.getMetaData();
      var tableSet = dbMetaData.getTables(null, null, table, null);
      var validTable = false;
      while (tableSet.next()) {
        var tempTable = tableSet.getString(3);
        if (table.toUpperCase() == tempTable.toUpperCase()){
          table = tempTable;
          validTable = true;
          break;
        }
      } 
      tableSet.close();
      if (!validTable) {
        Browser.msgBox("Invalid table name: " + table, Browser.Buttons.OK);
        return;
      }
    
      var stmt = conn.createStatement();
    
      var results = stmt.executeQuery('SELECT * FROM ' + table);
      var rsmd = results.getMetaData();
      var numCols = rsmd.getColumnCount();
    
      //if the sheet is empty, populate the first row with the headers
      var firstEmptyRow = getFirstEmptyRowByColumnArray(resultSheet, "A");
      if (firstEmptyRow == 1) {
        //collect column names
        var headers = new Array(new Array(numCols));
        for (var col = 0; col < numCols; col++){
          headers[0][col] = rsmd.getColumnName(col+1);
        }
        resultSheet.getRange(1, 1, headers.length, headers[0].length).setValues(headers);
      } else {
        rowNum = firstEmptyRow;
      }
    
      //write rows of Access data to the sheet
      var values = new Array(new Array(numCols));
      while (results.next()) {
        for (var col = 0; col < numCols; col++) {
          values[0][col] = results.getString(col + 1);
        }
        resultSheet.getRange(rowNum, 1, 1, numCols).setValues(values);
        rowNum++;
      }
    
      results.close();
      stmt.close();
    }
      

    Saat fungsi selesai, Anda memiliki spreadsheet yang diisi dengan data Access Anda, dan kini Anda dapat memanfaatkan semua fungsi penghitungan, pembuatan grafik, dan pembuatan bagan Google Sheets di mana pun Anda memiliki akses ke Internet

    Bagaimana cara mengakses spreadsheet yang dibuat oleh Google API?

    Untuk mengakses data yang disimpan di Google Spreadsheet, Anda perlu membuat akun layanan dan mendapatkan sekumpulan kredensial OAuth2 dari Google API Console. Access the Google APIs Console while logged into your Google account. Create a new project and give it a name. Click on ENABLE APIS AND SERVICES .

    Bagaimana Anda mengakses spreadsheet Google dengan python?

    Pertama, kita perlu menyiapkan kredensial OAuth di akun Google Drive kita untuk mengakses lembar kerja. Selanjutnya, kita perlu memasang pustaka klien Google API untuk Python . Kita bisa melakukan ini di (idealnya, di lingkungan virtual Python yang diaktifkan) menggunakan pip.

    Bagaimana cara membaca data dari spreadsheet Google menggunakan Javascript?

    Premis dasarnya adalah Anda perlu melakukan hal berikut. .
    Siapkan Google Sheet untuk akses publik (ada panduan tentang file readme proyek GitHub)
    Tambahkan paket npm ke repositori Anda
    Panggil fungsi pembaca dan berikan serangkaian opsi dan fungsi panggilan balik untuk menangani hasilnya