在API上传期间无法将xlsx自动转换为Google电子表格

时间:2014-02-22 22:39:35

标签: php google-drive-api

我正在尝试通过PHP脚本生成在线Google电子表格。由于似乎没有用于创建电子表格的原生PHP API(只能找到Java和.NET),我认为最简单的方法是生成XLSX并将其转换为Google电子表格。

上传文件可以正常工作:

$mime = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
$file = new Google_DriveFile();
$file->setTitle('My Spreadsheet');
$file->setMimeType($mime);

$data = file_get_contents('my_spreadsheet.xlsx');
$createdFile = $service->files->insert($file, array(
    'data' => $data,
    'mimeType' => $mime,
    'convert' => true,
));

当它出现在Google云端硬盘中时,它只是一个普通的Excel文件。我必须在Google云端硬盘网络界面中右键单击它,然后在转换之前选择“在Google表格中打开”(但转换没有错误)。

如何强制立即转换文件?

2 个答案:

答案 0 :(得分:0)

是的,有一个名为google spreadsheets api的api,只需在原始的https调用中使用它。你不需要一个特殊的php包装器虽然你可以使用zend,如果你必须:http://framework.zend.com/manual/1.12/en/zend.gdata.spreadsheets.html

答案 1 :(得分:0)

Google云端硬盘现在允许您上传文件并在转换时进行转换。您需要使用Google PHP SDK,但使用它非常简单。

https://developers.google.com/drive/v3/web/manage-uploads#importing_to_google_docs_types_wzxhzdk18wzxhzdk19

我认为您的代码中出现错误的原因是$ mime是Google要求的源文件application/vnd.google-apps.spreadsheet