Kết nối với cơ sở dữ liệu và tìm nạp dữ liệu vào Bảng tính Google


7

Tôi đã tự hỏi về điều này trong một thời gian. Chúng tôi đang sử dụng Google Bảng tính rất nhiều với các đồng nghiệp của mình và điều đó là chúng tôi luôn phải ghi lại dữ liệu mà chúng tôi đã có trong cơ sở dữ liệu MySQL của mình.

Tôi tự hỏi nếu có khả năng kết nối bảng tính của bạn với máy chủ MySQL và tìm nạp dữ liệu đến các hàng cụ thể thông qua tập lệnh thực thi hoặc một cái gì đó.

Câu trả lời:


5

Bạn có thể sử dụng các dịch vụ JDBC của Tập lệnh Google Apps .

Bạn sẽ phải viết một tập lệnh điền vào bảng tính của bạn dữ liệu từ dịch vụ JDBC.

Không chắc chắn chính xác những gì bạn muốn làm, nhưng bạn có thể bắt đầu với ví dụ từ tài liệu:

function foo() {
  var conn = Jdbc.getConnection('jdbc:mysql://<host>:3306/<instance>', 'user', 'password');
  var stmt = conn.createStatement();
  stmt.setMaxRows(100);
  var start = new Date();
  var rs = stmt.executeQuery('select * from person');

  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var cell = doc.getRange('a1');
  var row = 0;
  while (rs.next()) {
    for (var col = 0; col < rs.getMetaData().getColumnCount(); col++) {
      cell.offset(row, col).setValue(rs.getString(col + 1));
    }
    row++;
  }
  rs.close();
  stmt.close();
  conn.close();
  var end = new Date();
  Logger.log('Time elapsed: ' + (end.getTime() - start.getTime()));
}

Làm thế nào để làm điều này với xác thực tích hợp?
FMFF

1

Sử dụng JDBC Google AppScript

Đây là một số mã mẫu có thể giúp bạn bắt đầu.

 // Replace the variables in this block with real values.
    var address = 'Your DB Address Here';
    var user = 'Enter USER';
    var userPwd = 'YOUR PASSWORD';
    var db = 'DATABASE NAME';

    var dbUrl = 'jdbc:mysql://' + address + '/' + db;

    // Read up to 1000 rows of data from the table and log them.
   function readFromTable() {
      var conn = Jdbc.getConnection(dbUrl, user, userPwd);

      var start = new Date();
      var stmt = conn.createStatement();
      // Read up to 1000 rows of data from the table and log them.
      // stmt.setMaxRows(1000);
      var results = stmt.executeQuery('SELECT * FROM YOURTABLE');

      var sheet = SpreadsheetApp.getActiveSpreadsheet();
      var cell = sheet.getRange('A1');
      var numCols = results.getMetaData().getColumnCount();
      var row =0;

      while (results.next()) {
        var rowString = '';
        for (var col = 0; col < numCols; col++) {
          rowString += results.getString(col + 1) + '\t';
          cell.offset(row, col).setValue(results.getString(col +1 ));
        }
        row++
       Logger.log(rowString)
      }

      results.close();
      stmt.close();
      conn.close();

      var end = new Date();
      Logger.log('Time elapsed: %sms', end - start);
    }

1

SeekWell cho phép bạn kết nối với cơ sở dữ liệu và viết các truy vấn SQL trực tiếp trong Sheets và MySQL được bao gồm trong tầng miễn phí:

Một vài tính năng khác:

  • Xem nhanh tất cả các bảng và cột trong cơ sở dữ liệu và nhận số liệu thống kê tóm tắt trên một cột chỉ bằng một cú nhấp chuột
  • Truy vấn từ thanh bên, cửa sổ bật ra lớn hoặc từ trong một ô
  • Kết quả có thể được gửi đến một ô cụ thể, bảng cào hoặc trực tiếp đến bảng trụ
  • Lịch sử truy vấn của bạn được lưu và có thể xem được nếu bạn cần thực hiện lại một truy vấn cũ hơn
  • Bạn có thể lưu một tập hợp các truy vấn trên một Bảng chạy Run của Wap để cập nhật nhiều báo cáo cùng một lúc

Tuyên bố từ chối trách nhiệm: Tôi đã thực hiện điều này.


0
select * from table_name
into outfile '/somelocation/data.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';

Khởi chạy bảng tính google. Mở tệp data.csv Dữ liệu của bạn được nhập để sử dụng trong Google.

Hay bạn muốn một kết nối thời gian thực?


Kết nối thời gian thực sẽ tốt hơn, nhưng tôi không chắc là có thể hay không.

Tôi chưa làm điều đó với tài liệu google, nhưng tôi đã thực hiện nó với lịch google. Nếu bạn chạy một máy chủ web với php thì có thể là có thể. Tải xuống API lấy ID nhà phát triển từ google và một loạt các thứ khác.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.