簡體   English   中英

Php Google表格API v4不適用於包含單引號的工作表名稱

[英]Php Google Sheets API v4 not working with sheet names containing single quotes

我正在使用Googles Sheet API for php從工作表中檢索值。 我的代碼似乎適用於所有工作表名稱,但包含單引號的工作表名稱除外。 我已經嘗試用\\'轉義單引號,但它似乎沒有按預期從工作表中提取數據。

我的代碼如下所示。

$sheetId = "1Oz0c3OZN9parxwXU3l9pwWC1wwvmODHQiUz9is50Dy0";
$sheetName = "knijbnjk''''''''''jguvhygvhy";

$escapedSheetName = str_replace("'", "\'", $sheetName);
$range = "'{$escapedSheetName}'!A1:B4";

// returns instance of Google_Service_Sheets with client setup
$service = $this->getSheetService();

$result = $service->spreadsheets_values->get($sheetId, $range);
var_dump($result);

我嘗試過使用其他一些變體,例如/'並用&quote替換'; 我已經嘗試將單引號轉換為雙引號,但到目前為止似乎沒有任何工作。 似乎無法找到解決這個問題的方法。

嘗試做一個SpreadSheets.get這應該返回一個Spreadsheet資源

"sheets": [
{
  object(Sheet)
}

這應返回電子表格中所有工作的列表。

"properties": {
    object(SheetProperties)
 },

每張表中的屬性應包含有關該表的信息。

{
  "sheetId": number,
  "title": string,
  "index": number,
  "sheetType": enum(SheetType),
  "gridProperties": {
    object(GridProperties)
  },
  "hidden": boolean,
  "tabColor": {
    object(Color)
  },
  "rightToLeft": boolean,
}

我的賭注是它的html編碼' - >%27

所以事實證明你必須通過另一個單引號來逃避單一報價。

所以解決方案是

$escapedSheetName = str_replace("'", "''", $sheetName);

太奇怪了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM