ローカルのCSVファイルをGoogleドライブにアップロードして、そこでGoogleスプレッドシートのように表示しようとしています。ただし、Googleドライブにアクセスしてファイルへのリンクをクリックすると、ダウンロードのみが可能で、スプレッドシートとして表示することはできません。使ってみました?convert=true
が、ファイルが変換されません。mimeタイプとしても使用してみましapplication/vnd.google-apps.spreadsheet
たが、変更点に注意するか、400 Bad request
応答があります。
ファイルを右クリックすると、Googleスプレッドシートで開くことを選択できます。これにより、ファイルが正しく表示されます。私はグーグルで現在のドキュメントでこれについて何も見つけることができず、グーグルでの検索はあまり役に立ちませんでした。
これまでに行ったことは、新しい空のGoogleスプレッドシートを作成し、CSVファイルで埋めようとしたことですが、それで500 Internal Error
。
$file = new Google_DriveFile();
$file->setTitle('Exported data from ' . $this->event->title);
$file->setDescription('Exported data from ' . $this->event->title);
$file->setMimeType( 'text/csv' );
try {
$createdFile = $this->drive->files->insert($file, array(
'data' => $data,
'mimeType' => 'application/vnd.google-apps.spreadsheet'
), array('convert'=>true));
// Uncomment the following line to print the File ID
// print 'File ID: %s' % $createdFile->getId();
$additionalParams = array(
'newRevision' => false,
'data' => $data,
'convert'=>true //no change if this is true or false
);
$newFile = $this->drive->files->get( $createdFile->getId() );
$newFile->setMimeType('text/csv');
$updated = $this->drive->files->update($createdFile->getId(), $newFile, $additionalParams);
preint_r($updated);
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
}
GoogleドライブのAPIを調べましたが、有用なものは見つかりませんでした。Google Spreadsheets APIを使用する必要があるのか、それともGoogle DriveAPIを単独で使用するのか疑問に思っています。
よろしくお願いします、Waldemar