Google电子表格API - 找到列中的第一个空单元格?
问题描述:
有没有一种很好的方法通过Java从Google的电子表格服务中获得列中的第一个空单元格?Google电子表格API - 找到列中的第一个空单元格?
我知道我可以使用:
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;
}
并通过项目走,但我宁愿不加载整个列一次,这是我的用户缓慢,似乎坏的只是演练整个列
有什么想法?
答
这个小片段将建立在谷歌电子表格与谷歌Apps脚本函数:
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
答
你可以使用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;
}
}
}
或者,而不是检查日志从查看 - >日志或按Ctrl +输入,您可以在电子表格中使用以下值写入该值:
sheet.getRange("S8").setValue(i+1);