Excel — Как загрузить существующий файл XLS в Google Spread Sheet, php?

я использую

    "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 в один момент ??? Помогите, пожалуйста

0

Решение

Я нахожу 🙂

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
];
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]