有没有一种方法可以通过Java从Google的电子表格服务中获取第一个空单元格?
我知道我可以使用:
public CellFeed CheckColumn(int row, int col)
throws IOException, ServiceException {
CellQuery query = new CellQuery(cellFeedUrl);
query.setMinimumRow(row);
query.setMaximumRow(row);
query.setMinimumCol(col);
query.setMaximumCol(col);
query.setReturnEmpty(true);
CellFeed feed = service.query(query, CellFeed.class);
int cell_loc[];
for (CellEntry entry : feed.getEntries()) {
cell_loc=CheckIfEmpty(entry);
}
return cell_loc;
}
然后浏览条目,但我不想立刻加载整个列,对我的用户来说速度很慢,而且只是遍历整个列似乎很糟糕
有什么想法吗?
答案 0 :(得分:1)
这个小小的代码片段将使用Google Apps脚本在Google电子表格中创建一个功能:
function emptySpace(array) {
// set counter
var counter = 0;
// itterate through values
for (i in array){
if (array[i].length > 1) {
throw ("Only single column of data");
} else {
if(array[i][0] != "") {
counter++;
} else {
break;
}
}
}
// return value + 1
return counter + 1;
}
通过脚本编辑器将此脚本添加到电子表格中,整个工作表中的函数emptySpace可用,如下所示:=emptySpace(A1:A7)
。
请参阅我创建的示例文件:empty space
答案 1 :(得分:0)
您可以使用google appscript编辑器执行此类操作,该编辑器通过单击工具 - >脚本编辑器打开:
function myFunction()
{
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("YOUR_SHEET_NAME"); //get your active sheet for various operations
var data = sheet.getDataRange().getValues(); //whole sheet as 2D array
for(var i=0; i<data.length; i++)
{
if(data[i][YOUR_COLUMN].trim() == "") //trim() is used to remove blank spaces
{
Logger.log(i+1); //Returns empty first empty cell's row #
break;
}
}
}
或者,而不是从View-&gt;中检查日志。 log或ctrl + enter,您也可以使用以下方法在电子表格上写下该值:
sheet.getRange("S8").setValue(i+1);