я использую
"google/apiclient": "1.1.7",
"asimlqt/php-google-spreadsheet-client": "2.3.7",
"phpoffice/phpexcel": "1.8.1"
И я создаю новую электронную таблицу в Google Drive
"google/apiclient":
$service = new \Google_Service_Drive($client->getGoogleClient());
$file = new \Google_Service_Drive_DriveFile();
$file->setMimeType('application/vnd.google-apps.spreadsheet');
$insertArray = [
'mimeType' => 'application/vnd.google-apps.spreadsheet',
];
try {
$createdFile = $service->files->insert($file, $insertArray);
$spreadsheetId = $createdFile->getId();
} catch (\Exception $e) {
$e->getMessage()
}
а у меня альтернатива Url — https://docs.google.com/spreadsheets/d/xxxxx/edit?usp=drivesdk
и это нормально, иди на этот URL, у меня есть emty Google Spread Sheet
И я знаю, как загрузить существующий файл xls, создать в PHPExel и сохранить и загрузить в Google Drive
"phpoffice/phpexcel":
$phpExcel = new \PHPExcel();
$ews = $phpExcel->getSheet(0);
$ews->setTitle(Reports::LIST_AOG);
$objWriter = new \PHPExcel_Writer_Excel2007($phpExcel);
$path = 'uploads/';
$rootDir = $this->get('kernel')->getRootDir() . '/../web/';
$filePath = $rootDir . $path.$nameFile;
$objWriter->save($filePath);
$fileUpload = new File($filePath);
$insertArray = [
'mimeType' => $fileUpload->getMimeType(),
'uploadType' => 'media',
'data' => file_get_contents($fileUpload)
];
"google/apiclient":
$service = new \Google_Service_Drive($client->getGoogleClient());
$file = new \Google_Service_Drive_DriveFile();
$file->setTitle($nameFile);
$file->setMimeType($fileUpload->getMimeType());
try {
$createdFile = $service->files->insert($file, $insertArray);
$spreadsheetId = $createdFile->getId();
} catch (\Exception $e) {
$e->getMessage()
}
а у меня альтернатива Url — https://drive.google.com/file/d/xxxxxx/view?usp=drivesdk
и это нормально, перейдите по этой ссылке, я вижу файл и кнопку открыть в GoogleSpreadSheet
и в этот момент мой xls файл не googleSpreadSheet, только когда я открою свой файл в googleSpreadSheet, этот файл получит googleSpreadSheetId
и я могу получить таблицу Google по идентификатору или названию
"asimlqt/php-google-spreadsheet-client":
$serviceRequest = new DefaultServiceRequest($arrayAccessTokenClient['access_token']);
ServiceRequestFactory::setInstance($serviceRequest);
$spreadsheetService = new SpreadsheetService();
$scopeSpreadSheet = $spreadsheetService->getSpreadsheets();
$spreadsheetByTitle = $scope->getByTitle($createdFile->getTitle());
$spreadsheetById = $spreadsheetService->getSpreadsheetById($spreadsheetId);
Я пытаюсь заменить файл momeType в application/vnd.google-apps.spreadsheet
но есть в googledrive emty googleSpreadSheet
И я отказываюсь верить, что я не могу загрузить свой файл в googleSpreadSheet сразу или сразу одним запросом. Я пытаюсь найти решение, но двухдневный поиск не дал результатов.
Как загрузить мой файл xls в googleSpreadSheed в один момент ??? Помогите, пожалуйста
Я нахожу 🙂
convert boolean Whether to convert this file to the corresponding Google Docs format. (Default: false)
$insertArray = [
'mimeType' => $fileUpload->getMimeType(),
'uploadType' => 'media',
'data' => file_get_contents($fileUpload),
'convert' => true
];
Других решений пока нет …