无法修改 google 驱动器上存在的 XLSX
Can't modify XLSX exists on google drive
我使用这个简单的功能将 .xlsx 从我的本地 PC 成功上传到 google 驱动器。
我正在使用的 mimetype 应该将 .xlsx 转换为正常 google sheet
def writeToGDrive(filename):
file_metadata = {'name': filename,'parents': [FOLDER_ID]}
media = MediaFileUpload(filename,mimetype='application/vnd.openxmlformats-
officedocument.spreadsheetml.sheet', resumable=True)
file = service.files().create(body=file_metadata,media_body=media,fields='id').execute()
return file.get('id')
但是当我尝试阅读或编辑时
mySpread=service_sheet.spreadsheets().get(spreadsheetId=spreadSheet_Id).execute()
它给我这个错误
returned "This operation is not supported for this document">
此外,当尝试使用 gspread 时,它给我这个错误
gspread.exceptions.APIError: {'code': 400, 'message': 'This operation is not supported for this document', 'status': 'FAILED_PRECONDITION'}
我想在 google 驱动器上编辑此 .xlsx,然后将其再次导出为 .xlsx 到本地驱动器
我相信你的目标如下。
- 您想通过转换为 Google 电子表格来上传 XLSX 文件。
- 您想使用 python 的 googleapis 实现此目的。
修改点:
- 在这种情况下,如何在文件元数据中包含 Google 电子表格的 mimeType?
修改后的脚本:
请修改如下,重新测试
从:
file_metadata = {'name': filename,'parents': [FOLDER_ID]}
到:
file_metadata = {'name': filename, 'parents': [FOLDER_ID], 'mimeType': 'application/vnd.google-apps.spreadsheet'}
- 通过上述修改,返回的文件ID可以用作Google电子表格。
注:
当您将其导出为XLSX文件时,请使用如下“文件:导出”的方法。
request = service.files().export_media(fileId=fileId, mimeType='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
fh = io.FileIO('exportedSample.xlsx', mode='wb')
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
status, done = downloader.next_chunk()
print('Download %d%%.' % int(status.progress() * 100))
参考文献:
我使用这个简单的功能将 .xlsx 从我的本地 PC 成功上传到 google 驱动器。 我正在使用的 mimetype 应该将 .xlsx 转换为正常 google sheet
def writeToGDrive(filename):
file_metadata = {'name': filename,'parents': [FOLDER_ID]}
media = MediaFileUpload(filename,mimetype='application/vnd.openxmlformats-
officedocument.spreadsheetml.sheet', resumable=True)
file = service.files().create(body=file_metadata,media_body=media,fields='id').execute()
return file.get('id')
但是当我尝试阅读或编辑时
mySpread=service_sheet.spreadsheets().get(spreadsheetId=spreadSheet_Id).execute()
它给我这个错误
returned "This operation is not supported for this document">
此外,当尝试使用 gspread 时,它给我这个错误
gspread.exceptions.APIError: {'code': 400, 'message': 'This operation is not supported for this document', 'status': 'FAILED_PRECONDITION'}
我想在 google 驱动器上编辑此 .xlsx,然后将其再次导出为 .xlsx 到本地驱动器
我相信你的目标如下。
- 您想通过转换为 Google 电子表格来上传 XLSX 文件。
- 您想使用 python 的 googleapis 实现此目的。
修改点:
- 在这种情况下,如何在文件元数据中包含 Google 电子表格的 mimeType?
修改后的脚本:
请修改如下,重新测试
从:file_metadata = {'name': filename,'parents': [FOLDER_ID]}
到:
file_metadata = {'name': filename, 'parents': [FOLDER_ID], 'mimeType': 'application/vnd.google-apps.spreadsheet'}
- 通过上述修改,返回的文件ID可以用作Google电子表格。
注:
当您将其导出为XLSX文件时,请使用如下“文件:导出”的方法。
request = service.files().export_media(fileId=fileId, mimeType='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') fh = io.FileIO('exportedSample.xlsx', mode='wb') downloader = MediaIoBaseDownload(fh, request) done = False while done is False: status, done = downloader.next_chunk() print('Download %d%%.' % int(status.progress() * 100))