Google Sheets API与php-查找单元格值
我正在用PHP和GoogleSheetsAPI阅读一个工作表,我需要找到一行并更新它的内容 我目前正在对行进行迭代,寻找值,但随着工作表的增长,这似乎效率很低。有没有办法搜索单元格,检索行,然后更新 我要迭代的代码如下所示Google Sheets API与php-查找单元格值,php,google-apps-script,google-sheets,Php,Google Apps Script,Google Sheets,我正在用PHP和GoogleSheetsAPI阅读一个工作表,我需要找到一行并更新它的内容 我目前正在对行进行迭代,寻找值,但随着工作表的增长,这似乎效率很低。有没有办法搜索单元格,检索行,然后更新 我要迭代的代码如下所示 $spreadsheet = (new Google\Spreadsheet\SpreadsheetService) ->getSpreadsheetFeed() ->getById("xxx
$spreadsheet = (new Google\Spreadsheet\SpreadsheetService)
->getSpreadsheetFeed()
->getById("xxx sheet id xxx");
$worksheets = $spreadsheet->getWorksheetFeed()->getEntries();
$worksheet = $worksheets[0];
$CellFeed = $worksheet->getCellFeed();
foreach ($CellFeed->getEntries() as $E)
{
$r = $E->getRow();
/* ...... */
}
我相信你的目标如下
$spreadsheet = (new Google\Spreadsheet\SpreadsheetService)
->getSpreadsheetFeed()
->getById("xxx sheet id xxx");
$worksheets = $spreadsheet->getWorksheetFeed()->getEntries();
$worksheet = $worksheets[0];
$CellFeed = $worksheet->getCellFeed();
foreach ($CellFeed->getEntries() as $E)
{
$r = $E->getRow();
/* ...... */
}
- 您希望从电子表格中的特定列中搜索值,并检索所搜索行的行号
- 您希望使用PHP实现这一点
function doGet(e) {
const sheet = SpreadsheetApp.openById(e.parameter.spreadsheetId).getSheetByName(e.parameter.sheetName);
const res = sheet.getRange(1, 2, sheet.getLastRow()).createTextFinder(e.parameter.searchValue).findAll().map(r => r.getRow());
return ContentService.createTextOutput(JSON.stringify({rowNumbers: res})).setMimeType(ContentService.MimeType.JSON);
}
3.部署Web应用程序。
- 这样,脚本将作为所有者运行
- 在这种情况下,请求时不需要访问令牌。我认为我推荐使用此设置来测试此解决方案
- 当然,您也可以使用访问令牌。使用访问令牌时,请包括驱动器API的一个作用域,如
https://www.googleapis.com/auth/drive.readonly
- 而且,我认为键值可以用作查询参数,而不是访问令牌
https://script.google.com/macros/s/###/exec
。
- 当您修改Google Apps脚本时,请重新部署为新版本。这样,修改后的脚本将反映到Web应用程序中。请注意这一点。
Pj/5678
和2
<“代码>搜索”列中的“代码>2”表示“B”列
注:
- 修改Web应用脚本时,请将Web应用重新部署为新版本。这样,最新的脚本就会反映到Web应用程序中。请注意这一点。
{"rowNumbers":[###, ###,,,]}