Я создаю файл excel и защищаю некоторое поле в этом файле. В Office excel все прекрасно, что моя ячейка заблокирована для редактирования, начните загрузку моего файла excel в google drive с convert-true (нужно ли преобразовать этот файл в соответствующий формат Документов Google. (По умолчанию: false)) Но в google spread-лист I может редактировать заблокированную ячейку, как заблокировать в google spread листе какую-то ячейку?Таблица Google, как защитить Cell?
создания файла Excel
$phpExcel = new \PHPExcel();
$ews = $phpExcel->getSheet(0);
$ews->setTitle(Reports::LIST_AOG);
$ews->getProtection()->setSheet(true);
$ews
->getStyle('E6:F36')
->getProtection()->setLocked(
\PHPExcel_Style_Protection::PROTECTION_UNPROTECTED
);
и теперь я могу редактировать только E6: F36 клетка моего файла в компьютере, а затем загрузить в Google диск
$insertArray = [
'mimeType' => $fileUpload->getMimeType(),
'uploadType' => 'media',
'data' => file_get_contents($fileUpload),
'convert' => true
];
$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) {
$view = $this->view((array)GoogleDriveController::ERROR_OCCURRED . $e->getMessage(), 400);
return $this->handleView($view);
}
Я Fing для таблицы Google апи пачке asimlqt/php-google-spreadsheet-client
но не найти способ защиты
$serviceRequest = new DefaultServiceRequest($arrayAccessTokenClient['access_token']);
ServiceRequestFactory::setInstance($serviceRequest);
$spreadsheetService = new SpreadsheetService();
$spreadsheet = $spreadsheetService->getSpreadsheetById($spreadsheetId);
$worksheetFeed = $spreadsheet->getWorksheets();
$cellFeed = $worksheet->getCellFeed();
$cellFeed->editCell(1, 1, 'developer');
$cellFeed->editCell(1, 2, 'hors');
$cellFeed->editCell(10, 2, 'sum');
или как защищена ячейка с asimlqt/php-google-spreadsheet-client
?
и в Google распространение листа я могу любой редактировать любую клетку ((((Кто знает, что горячий защищаемую ячейку в Google spreat листе?
UPDATE
Я прочитал Google Sheets API и попытаться создать запрос, это у меня есть
$arrayAccessTokenClient = json_decode($client->getGoogleClient()->getAccessToken(), true);
$serviceRequest = new DefaultServiceRequest($arrayAccessTokenClient['access_token']);
ServiceRequestFactory::setInstance($serviceRequest);
$spreadsheetService = new SpreadsheetService();
$spreadsheet = $spreadsheetService->getSpreadsheetById($spreadsheetId);
$worksheetFeed = $spreadsheet->getWorksheets();
$worksheet = $worksheetFeed->getByTitle(Reports::LIST_AOG);
$addProtectedRange['addProtectedRange'] = [
'protectedRange' => [
'range' => [
'sheetId' => $worksheet->getGid(),
'startRowIndex' => 3,
'endRowIndex' => 4,
'startColumnIndex' => 0,
'endColumnIndex' => 5,
],
'description' => "Protecting total row",
'warningOnly' => true
]
];
$guzzle = new Client();
$putTeam = $guzzle
->post('https://sheets.googleapis.com/v4/spreadsheets/'.$spreadsheetId.':batchUpdate?key='.$arrayAccessTokenClient['access_token'],
[],
json_encode($addProtectedRange)
)
->send()
->getBody(true);
$answer = json_decode($putTeam, true);
Но есть
Client error response
[status code] 401
[reason phrase] Unauthorized
[url] https://sheets.googleapis.com/v4/spreadsheets/1M_NFvKMZ7Rzbj9ww86AJRMto1UesIy71840r2sxbD5Y:batchUpdate?key=myAccessToken
В начале у меня есть Google Api Clien с доступом лексем, и я могу изменить ячейку и обновить с Google распространения листа и работать нормально, но https://sheets.googleapis.com/v4/spreadsheets/'.$spreadsheetId.':batchUpdate?key='.$arrayAccessTokenClient['access_token'],
возвращение 401 и я не понимаю, почему и как исправить. Справка
Я обновляю свой вопрос, смотрите пожалуйста –
Начнем с этого. «sheetId» не «spreadsheetId». sheetId - это число, следующее «gid», как gid = 1234567 в вашем URL-адресе. В этом случае 1234567 - это вопрос с вопросом о листе – noogui
. Я заменяю на '$ worksheet-> getGid()' Но все же есть 410 Unauthorized –