从电子表格中读取值
我正在尝试从Google电子表格中读取值。从电子表格中读取值
String range = "A1:20";
ValueRange response = sheet.spreadsheets().values().get(spreadsheetId, range)
.execute();
List<List<Object>> values = response.getValues();
if (values == null || values.size() == 0) {
System.out.println("No data found.");
} else {
System.out.println("Name, Major");
System.out.println(values);
for (List row : values) {
// Print columns A and E, which correspond to indices 0 and 4.
System.out.printf("%s\n", row.get(0));
}
}
我有一个包含多行和多列的电子表格。我需要阅读工作表中的所有数据。上面的代码工作正常,读取第一列的20行,但我无法设置范围变量值自动读取表中的所有行和列。
另外我想在服务器端读取json格式的每一列的数据类型。
如果我理解正确,你想使用getDataRange()在整个表中的数据在这里找到:
https://developers.google.com/apps-script/reference/spreadsheet/sheet#getDataRange()
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
// This represents ALL the data
var range = sheet.getDataRange();
// This get the values
var values = range.getValues();
根据我的要求,我需要在服务器端调用数据我已经给出了上面的代码,并需要设置适当的值的范围变量,以便我将所有列和行到列表对象。 –
如果您需要从客户机到片打电话那么我有这个我经常使用的代码。请注意,该表格需要发布,并设置为任何具有链接可查看的人员。你还需要jQuery。注意工作表网址对json的影响。列标题的前缀为“gsx $”,然后设置为小写,并删除空格。
//https://docs.google.com/spreadsheets/d/1OY18xmnT-O4AWzGDC63RvzzmNgyKHOnuvq-RX6M_6xw/edit#gid=0
var spreadsheetID = "1OY18xmnT-O4AWzGDC63RvzzmNgyKHOnuvq-RX6M_6xw";
var url = "https://spreadsheets.google.com/feeds/list/" + spreadsheetID + "/1/public/values?alt=json";
$.getJSON(url, function(incomingData) {
\t data = incomingData;
var entry = data.feed.entry;
showData(entry)
});
function showData(entry){
for (var items in entry){
\t \t console.log(entry[items].gsx$fruit.$t +": "+ entry[items].gsx$number.$t)
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
</head>
<body>
</body>
</html>
我很感谢你的解决方案。但根据我的要求,我需要在服务器端调用数据我已经给出了上面的代码,并需要设置具有适当值的范围变量,以便我将所有列和行放入List对象中。 –
见在Simple Mail合并教程的完整代码读取数据的好办法。尤其是getRowsData()函数的部分向下。它将读取连续的所有数据。
对于您的范围,上面提到的代码的前三行将为您提供所需的内容。我修改他们略低于获得代表所有工作表Sheet1的范围:
var ss = SpreadsheetApp.openById(spreadsheetId);
var dataSheet = ss.getSheetByName('Sheet1');
var dataRange = dataSheet.getRange(2, 1, dataSheet.getMaxRows() - 1, 4);
我用值范围为“1:30”返回我的所有列,但30行。请大家帮我设置范围值,这样我就可以得到表格中的所有行。 –