Java |如何使用 API 在 google 电子表格的范围内查找值(行号和列号)?
Java | How to find a value (row and column number) in range of google spreadsheet using API?
我正在使用 Java API (V4) 从 google sheet 读取和编辑数据。到目前为止,我能够根据行号和列号(索引)读取和编辑数据。
- 我想做的是通过数据的特定值来定位数据(我想使用它的值获取特定单元格的行号和列号)。
到目前为止,这是我用来编辑数据的工作代码的一部分:
// Copy the format from A1:C1 and paste it into A2:C5, so the data in
// each column has the same background.
requests.add(new Request()
.setCopyPaste(new CopyPasteRequest()
.setSource(new GridRange()
.setSheetId(0)
.setStartRowIndex(0)
.setEndRowIndex(1)
.setStartColumnIndex(0)
.setEndColumnIndex(3))
.setDestination(new GridRange()
.setSheetId(0)
.setStartRowIndex(1)
.setEndRowIndex(6)
.setStartColumnIndex(0)
.setEndColumnIndex(3))
.setPasteType("PASTE_FORMAT")));
BatchUpdateSpreadsheetRequest batchUpdateRequest = new BatchUpdateSpreadsheetRequest()
.setRequests(requests);
谁能帮帮我?
提前谢谢你。
尚无法为 Google Sheet API 查找文本。请加注星标 issue tracker FR 以获得任何更新通知。
基于此 SO answer、"You can get the data for the range you are searching on, and then iterate over it looking for a match. " 的解决方法
这是他的代码片段:
/**
* Finds a value within a given range.
* @param value The value to find.
* @param range The range to search in.
* @return A range pointing to the first cell containing the value,
* or null if not found.
*/
function find(value, range) {
var data = range.getValues();
for (var i = 0; i < data.length; i++) {
for (var j = 0; j < data[i].length; j++) {
if (data[i][j] == value) {
return range.getCell(i + 1, j + 1);
}
}
}
return null;
}
注意:代码示例在 google-apps-script
就像在这个代码片段中一样,您需要先设置范围,然后检查值是否在范围内匹配。
根据 documentation,您可以使用 FindReplaceRequest()
和 .getFind();
找到值
String cellReq = (new FindReplaceRequest().setFind("samuel")).getFind();
我正在使用 Java API (V4) 从 google sheet 读取和编辑数据。到目前为止,我能够根据行号和列号(索引)读取和编辑数据。
- 我想做的是通过数据的特定值来定位数据(我想使用它的值获取特定单元格的行号和列号)。
到目前为止,这是我用来编辑数据的工作代码的一部分:
// Copy the format from A1:C1 and paste it into A2:C5, so the data in
// each column has the same background.
requests.add(new Request()
.setCopyPaste(new CopyPasteRequest()
.setSource(new GridRange()
.setSheetId(0)
.setStartRowIndex(0)
.setEndRowIndex(1)
.setStartColumnIndex(0)
.setEndColumnIndex(3))
.setDestination(new GridRange()
.setSheetId(0)
.setStartRowIndex(1)
.setEndRowIndex(6)
.setStartColumnIndex(0)
.setEndColumnIndex(3))
.setPasteType("PASTE_FORMAT")));
BatchUpdateSpreadsheetRequest batchUpdateRequest = new BatchUpdateSpreadsheetRequest()
.setRequests(requests);
谁能帮帮我? 提前谢谢你。
尚无法为 Google Sheet API 查找文本。请加注星标 issue tracker FR 以获得任何更新通知。
基于此 SO answer、"You can get the data for the range you are searching on, and then iterate over it looking for a match. " 的解决方法 这是他的代码片段:
/**
* Finds a value within a given range.
* @param value The value to find.
* @param range The range to search in.
* @return A range pointing to the first cell containing the value,
* or null if not found.
*/
function find(value, range) {
var data = range.getValues();
for (var i = 0; i < data.length; i++) {
for (var j = 0; j < data[i].length; j++) {
if (data[i][j] == value) {
return range.getCell(i + 1, j + 1);
}
}
}
return null;
}
注意:代码示例在 google-apps-script
就像在这个代码片段中一样,您需要先设置范围,然后检查值是否在范围内匹配。
根据 documentation,您可以使用 FindReplaceRequest()
和 .getFind();
String cellReq = (new FindReplaceRequest().setFind("samuel")).getFind();