我希望有人可以帮助我从这里的数据库示例中获取JDBC脚本... https://developers.google.com/apps-script/jdbc ...使用我的数据库。
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 clients");
var doc = SpreadsheetApp.getActiveSpreadsheet();
var cell = doc.getRange('a1');
var row = 0;
while(rs.next()) {
cell.offset(row, 0).setValue(rs.getString(1));
cell.offset(row, 1).setValue(rs.getString(2));
cell.offset(row, 2).setValue(rs.getString(3));
cell.offset(row, 3).setValue(rs.getString(4));
row++;
}
rs.close();
stmt.close();
conn.close();
var end = new Date();
Logger.log("time took: " + (end.getTime() - start.getTime()));
}
我插入了我的服务器和用户信息,并将select *语句更改为我的数据库中的“clients”表。连接成功但我收到以下错误...
TypeError:无法调用null的方法“getRange”。 (第9行)
我的数据库中的表“clients”包含以下列...
id, clientname, clientcontact, clientphone, clientnote
有人可以帮助我了解示例脚本中需要更改哪些内容才能使用我的clients表吗?我到目前为止还不是程序员...但是我想让它工作并使用它作为模板从mysql获取数据到谷歌电子表格,这样我就可以在我的谷歌网站上发布这张表。
谢谢!
答案 0 :(得分:1)
此脚本应该从电子表格容器运行,或者至少可以访问电子表格以写入其结果。
所以你有两种可能性:
将您的脚本复制/粘贴到电子表格脚本编辑器中并从那里运行。
用openbyId(电子表格ID)替换spreadsheetApp.getActive (有关详细信息,请参阅this other post)由于您的脚本与其使用的电子表格没有直接关系,因此您确实处于几乎相同的情况。