0

我在学习如何使用 gdata api 和 zend 框架时遇到了麻烦。

我基本上有一个电子表格,我想要从中获取数据。

我已经设法将它放入一个我很高兴使用以下代码的数组中(很可能过于臃肿)

<?php
/* Load the Zend Gdata classes. */
function number_ending($number){ 
  $suff = array("","st","nd","rd","th"); 
  $index = intval($number); 
  if($index > 4){ 
    $index = 4; 
  }elseif($index < 1){ 
    $index = 0; 
  } 
  return ($number . $suff[$index]); 
} 

require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_Gbase');
Zend_Loader::loadClass('Zend_Gdata_Spreadsheets');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');

$username = "XXXXXXXXXXXXXXX";
$password = "XXXXXXXXX";
$key = "XXXXXXXXXXXX";

//---------------------------------------------------------------------------------
// Init Zend Gdata service

$service = Zend_Gdata_Spreadsheets::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient($username, $password, $service);
$spreadSheetService = new Zend_Gdata_Spreadsheets($client);

//--------------------------------------------------------------------------------
// Example 1: Get cell data

$query = new Zend_Gdata_Spreadsheets_DocumentQuery();
$query->setSpreadsheetKey($key);
$feed = $spreadSheetService->getWorksheetFeed($query);
$entries = $feed->entries[0]->getContentsAsRows();

var_dump($entries);
exit;

//sort the headings out
$headingRow = array_slice($entries[0], 1, 6);
$headings = array();
reset($headingRow);
$month = key($headingRow);
foreach ($headingRow as $key => $value) {
    $headings[] = number_ending($value);
}

//sort the content
unset($entries[0]);
$people = array();
foreach($entries as $k => $person){
    $person = array_slice($person, 0, 6);
    $formatted = array();
    foreach ($person as $key => $value) {
        $formatted[] = $value;
    }
    $people[$formatted[0]] = $formatted;
    array_shift( $people[$formatted[0]] );
}

foreach ($people as $pkey => $person) {
    foreach ($person as $key => $date) {
        $people[$pkey][$headings[$key]] = $date;
        unset($people[$pkey][$key]);
    }
}

但是,我返回的数据不包含分配给该单元格的任何注释/评论。

我得到的只是

array (size=10)
  0 => 
    array (size=85)
      '_cokwr' => string 'Column A' (length=11)
      'may' => string '29' (length=2)
      '_e1qt2' => string '30' (length=2)
      '_e35dj' => string '1' (length=1)
      '_e4jxw' => string '2' (length=1)
      '_e5yid' => string '3' (length=1)
      '_faot2' => string '4' (length=1)
      'may_2' => string '6' (length=1)
      '_yhrze' => string '7' (length=1)
      '_yj6jv' => string '8' (length=1)
      '_ykl48' => string '9' (length=1)
      '_ylzop' => string '10' (length=2)
      '_yc5pq' => string '11' (length=2)
      'may_3' => string '13' (length=2)
      '_ygdf1' => string '14' (length=2)
      '_yt0iq' => string '15' (length=2)
      '_yuf37' => string '16' (length=2)
      '_yvtnk' => string '17' (length=2)
      '_yx881' => string '18' (length=2)
      'may_4' => string '20' (length=2)
      '_yq7dw' => string '21' (length=2)
      '_yrlyd' => string '22' (length=2)
      '_u4gbe' => string '23' (length=2)
      '_u5uvv' => string '24' (length=2)
      '_u79g8' => string '25' (length=2)
      'may_5' => string '27' (length=2)
      '_u08m7' => string '28' (length=2)
      '_u1n6k' => string '29' (length=2)
      '_u31r1' => string '30' (length=2)
      '_ufouq' => string '31' (length=2)
      '_uh3f7' => string '1' (length=1)
      'june' => string '3' (length=1)
      '_ua2l2' => string '4' (length=1)
      '_ubh5j' => string '5' (length=1)
      '_ucvpw' => string '6' (length=1)
      '_ueaad' => string '7' (length=1)
      '_uqxe2' => string '8' (length=1)
      'june_2' => string '10' (length=2)
      '_uv53d' => string '11' (length=2)
      '_ulb4e' => string '12' (length=2)
      '_umpov' => string '13' (length=2)
      '_uo498' => string '14' (length=2)
      '_upitp' => string '15' (length=2)
      'june_3' => string '17' (length=2)
      '_v4z28' => string '18' (length=2)
      '_v6dmp' => string '19' (length=2)
      '_uwjnq' => string '20' (length=2)
      '_uxy87' => string '21' (length=2)
      '_uzcsk' => string '22' (length=2)
      'june_4' => string '24' (length=2)
      '_vet2z' => string '25' (length=2)
      '_vg7nc' => string '26' (length=2)
      '_vhm7t' => string '27' (length=2)
      '_v7s8u' => string '28' (length=2)
      '_v96tb' => string '29' (length=2)
      'july' => string '1' (length=1)
      '_von1u' => string '2' (length=1)
      '_vq1mb' => string '3' (length=1)
      '_vrg6o' => string '4' (length=1)
      '_vsur5' => string '5' (length=1)
      '_vj0s6' => string '6' (length=1)
      'july_2' => string '8' (length=1)
      '_vn8hh' => string '9' (length=1)
      '_vzvl6' => string '10' (length=2)
      '_w1a5n' => string '11' (length=2)
      '_w2oq0' => string '12' (length=2)
      '_w43ah' => string '13' (length=2)
      'july_3' => string '15' (length=2)
      '_vx2gc' => string '16' (length=2)
      '_vyh0t' => string '17' (length=2)
      '_wb44i' => string '18' (length=2)
      '_wcioz' => string '19' (length=2)
      '_wdx9c' => string '20' (length=2)
      'july_4' => string '22' (length=2)
      '_w6wfb' => string '23' (length=2)
      '_w8azo' => string '24' (length=2)
      '_w9pk5' => string '25' (length=2)
      '_11m5ay' => string '26' (length=2)
      '_11njvf' => string '27' (length=2)
      'julaugust' => string '29' (length=2)
      '_11gj1a' => string '30' (length=2)
      '_11hxlr' => string '31' (length=2)
      '_11jc64' => string '1' (length=1)
      '_11kqql' => string '2' (length=1)
      '_11xdua' => string '3' (length=1)

}

我想知道我应该怎么做才能把它弄出来?

谢谢

4

1 回答 1

0

使用 google-apps-script:创建一个网络应用程序并通过 google 应用程序脚本将值提取到您的代码中。--- 我怀疑这是唯一的选择。我很想被证明是错误的。

据我所知,gdata style api 不支持获取注释、字体、颜色等。但是您可以通过将工作表获取为 HTML 来获取样式数据。有点乱,但工作正常。

于 2013-05-03T02:48:22.870 回答