2017-05-11 6 views
1

私はシートから値を取得するためにphpのためにGoogleのシートAPIを使用しています。私のコードは、一重引用符を含むものを除き、すべてのシート名で機能するようです。私は\ 'で単一引用符をエスケープしようとしましたが、期待通りにシートからデータを引き出すようには見えません。php GoogleスプレッドシートAPI v4が単一引用符を含むシート名で動作しない

私のコードは次のようになります。

$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); 

は私が/のような他のいくつかのバリエーションを使用して「と交換する」&引用して試してみました。私は一重引用符を二重引用符に変換しようとしましたが、今のところ何も動作していないようです。この問題の解決策も見当たりません。

答えて

0

SpreadSheets.getを実行しようとすると、Spreadsheet resourceが返されます。

"sheets": [ 
{ 
    object(Sheet) 
} 

これは、スプレッドシート内のすべてのSheetのリストを返す必要があります。

各シート内のプロパティには、シートに関する情報が含まれている必要があります。別の単一引用符」は - 「27

0

だから、それはあなたが単一引用符をエスケープする必要が判明>%」

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

私の賭けは、エンコードされたそのhtmlです。

だから、解決策は

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

とても奇妙です。

関連する問題