2015-10-26 55 views
1

我試圖創建一個函數,它在我的Google電子表格中使用一個數據範圍/指定範圍,並將非空的每一行插入MySQL表格中。 我想在「Sheet One」中將列範圍A:V插入到「mysql_table」表中。我是使用JDBC谷歌腳本的新手,以下是我到目前爲止所提出的內容,但是我無法使用我目前的知識。插入從Google表格到MySQL的數據範圍

function putData() { 

    var conn = Jdbc.getConnection(dbUrl, user, userPwd); 
    conn.setAutoCommit(false); 

    var ss = SpreadsheetApp.getActiveSpreadsheet(), 
     sheet = ss.getSheetByName("Sheet One"), 
     range = sheet.getDataRange(), 
     values = range.getValues(), 
     row; 

    var start = new Date(); 
function writeManyRecords() { 
    for (var r=1; r<values.length; r++) { 
    if(values[r].join('') === '') return 'Blank row encountered'; 

    row = values[r]; 
    var i = 0; 
    var stmt = conn.prepareStatement('INSERT INTO mysql_table ' 
     + '(field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21, field22) values (' + start + row[i] + ')'); 
    stmt.addBatch(); 



    var batch = stmt.executeBatch(); 
    conn.commit(); 
    conn.close(); 


    var end = new Date(); 
    } 
} 
} 

任何人對我如何實現這一目標有任何想法?

回答

1

我想出了一個解決方案,我將它發佈給其他任何想從Google表格中寫入MySQL的方法。這裏有一個簡化版本:

function putData() { 
    var conn = Jdbc.getConnection(dbUrl, user, userPwd); 
    var stmt = conn.createStatement(); 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var data = sheet.getDataRange().getValues(); 

    for (var i = 0; i < data.length; i++) { 
    var sql = "INSERT INTO test (test, num) VALUES ('" + data[i][0] + "'," + data[i][1] + ")"; 
    var count = stmt.executeUpdate(sql,1) 
    } 

    stmt.close(); 
    conn.close(); 
}