2011-09-17 56 views
4

我正在尝试使用Zend Gdata 1.11库在Google Spreadsheet中插入行的最简单方案。电子表格在单元格A1中包含单词“Kolona”。 这里是整个php文件:使用Zend Gdata在Google电子表格中插入行错误

<?php 
require_once 'Zend/Loader.php'; 
Zend_Loader::loadClass('Zend_Gdata'); 
Zend_loader::loadClass('Zend_Gdata_Query'); 
Zend_Loader::loadClass('Zend_Gdata_Spreadsheets'); 
Zend_Loader::loadClass('Zend_Gdata_ClientLogin'); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 
<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 

$user = "xxxx"; 
$pass = "xxxx"; 
$service = 'wise'; 

$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service, null, Zend_Gdata_ClientLogin::DEFAULT_SOURCE, null, null, Zend_Gdata_ClientLogin::CLIENTLOGIN_URI, 'GOOGLE'); 

$spreadsheetService = new Zend_Gdata_Spreadsheets($client); 

$feed = $spreadsheetService->getSpreadsheetFeed(); 

foreach ($feed as $entry) { 
echo 'Title: ' . $entry->title . ' - '; 
echo 'Id: ' . $entry->id . '<br />'; 
} 
$rowData = array('Kolona' => 'smurf'); 

$spreadsheetKey = 'xxxx'; 
$worksheetId = 'xxx'; 

try{ 
$insertedListEntry = $spreadsheetService->insertRow($rowData, 
                $spreadsheetKey, 
                $worksheetId); 
} 
catch(Zend_Gdata_App_HttpException $exception) { 
    echo "Error: " . $exception->getResponse()->getRawBody(); 
} 
?> 
</body> 
</html> 

它遍历电子表格和写名称和ID,这意味着我在登录和访问,但磨涉及到插入行,我得到错误:“很抱歉,发生服务器错误,请稍等,然后尝试重新加载电子表格。“

Full error is: "Fatal error: Uncaught exception 'Zend_Gdata_App_HttpException' with message 'Expected response code 200, got 400 We&#39;re sorry, a server error has occurred. Please wait and try reloading your spreadsheet.' in C:\wamp\www\ks\gdata\ZendGdata-1.11.10\library\Zend\Gdata\App.php:709 Stack trace: #0 C:\wamp\www\ks\gdata\ZendGdata-1.11.10\library\Zend\Gdata.php(219): Zend_Gdata_App->performHttpRequest('POST', 'https://spreads...', Array, '<atom:entry xml...', 'application/ato...', NULL) #1 C:\wamp\www\ks\gdata\ZendGdata-1.11.10\library\Zend\Gdata\App.php(900): Zend_Gdata->performHttpRequest('POST', 'https://spreads...', Array, '<atom:entry xml...', 'application/ato...') #2 C:\wamp\www\ks\gdata\ZendGdata-1.11.10\library\Zend\Gdata\App.php(975): Zend_Gdata_App->post('<atom:entry xml...', 'https://spreads...', NULL, NULL, Array) #3 C:\wamp\www\ks\gdata\ZendGdata-1.11.10\library\Zend\Gdata\Spreadsheets.php(336): Zend_Gdata_App->insertEntry('<atom:entry xml...', 'https://spreads...', 'Zend_Gdata_Spre...') #4 C:\wamp\www\ks\gdata\gs in C:\wamp\www\ks\gdata\ZendGdata-1.11.10\library\Zend\Gdata\App.php on line 709" 

我在做什么错?我应该以特定的方式创建电子表格吗?

回答

10
$rowData = array('Kolona' => 'smurf'); - wrong 
$rowData = array('kolona' => 'smurf'); - correct 

显然,列名必须用小写字母表示,且不能有空格。我可以在Google电子表格中保留“Kolona”,只需在代码中使用小写字母即可。

如果我有列名为“我的列2”,在数组中它应该是'mycolumn2'。

+0

谷歌应该提上https://developers.google.com/google-apps/spreadsheets/#adding_a_list_row这个地方 –

+1

还显示出下划线必须丢弃。 –

0

我有一个类似的问题,由于数组中存在空格而出现。删除空格帮我:

$rowData = array('kolona' => 'smurf'); - your code 
$rowData = array('kolona'=>'smurf'); - my code 
相关问题