How to connect Google Sheets to Database

前端 未结 8 1771
[愿得一人]
[愿得一人] 2020-12-23 02:31

I\'m trying to auto-populate some raw data on a sheet in my google sheets file with a query.

It doesn\'t look like sheets has any built in functionality to do so lik

8条回答
  •  独厮守ぢ
    2020-12-23 03:06

    This code works well: to connect Azure database and grab data from table

    function onOpen() {
    
    var spreadsheet = SpreadsheetApp.getActive();
    
    var menuItems = [
        {name: 'Get Data', functionName: 'readData'}
    ];
    	spreadsheet.addMenu('Report', menuItems);
    }
    
    
    // Replace the variables in this block with your values.
     var hostName = 'SERVER.database.windows.net:1433;'
     var db = 'DBNAME;';
     var user = 'USER@SERVER';
     var userPwd = 'PASSWORD';
    
    
    
     var dbUrl = 'jdbc:sqlserver://'+hostName + 'databaseName='+db; 
    
    
    function readData() {
     var conn = Jdbc.getConnection(dbUrl, user, userPwd);
     var stmt = conn.createStatement();
    
      
     // Place your query below
     var results = stmt.executeQuery('SELECT TOP (10) * FROM [dbo].[NAME]');
     var metaData=results.getMetaData();
     var numCols = metaData.getColumnCount();
     var sheet = SpreadsheetApp.getActiveSheet();
    
     sheet.clearContents();
    
     var arr=[];
    
     for (var col = 0; col < numCols; col++) {
      arr.push(metaData.getColumnName(col + 1));
     }
    
     sheet.appendRow(arr);
    
    
     while (results.next()) {
      arr=[];
    
      for (var col = 0; col < numCols; col++) {
    
       arr.push(results.getString(col + 1));
      }
     sheet.appendRow(arr);
    
    }
    
    results.close();
    stmt.close();
    
    sheet.autoResizeColumns(1, numCols+1);
    
    }

提交回复
热议问题