Login ke Connect Server dan klik Database. 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';
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);
}
_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);
}
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)
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
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