2015-10-26 20 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(); 
}