我面临的挑战是,将一个模板(即一个超文本模板)列入一个谷歌文件,在方案上使用on。 我知道,在谷歌、文件编辑或谷歌式文件APIC中,没有解决我的问题的本土/传统特征,但我尝试了几条trick,以接触我的喷气。 在此,我们重新忽略我们应插入的“哪里”文件,仅仅成功插入就足够了。
我的做法是:
- Upload a HTML file in Google Drive as
application/vnd.google-apps.document
, because Google Docs convert the HTML to Docs automatically. (Not perfect, but works) - Get the file content using Google Docs API get(), which is the Google Docs JSON format.
- Update the new content on target file using Google Docs batchUpdate().
def insert_template_to_file(target_file_id, content):
media = MediaIoBaseUpload(BytesIO(content.encode( utf-8 )), mimetype= text/html , resumable=True)
body = {
name : document_test_html ,
mimeType : application/vnd.google-apps.document ,
parents : [DOC_FOLDER_ID]
}
try:
# Create HTML as docs because it automatically convert html to docs
content_file = driver_service.files().create(body=body, media_body=media).execute()
content_file_id = content_file.get( id )
# Collect html content from Google Docs after created
doc = docs_service.documents().get(documentId=content_file_id, fields= body ).execute()
request_content = doc.get( body ).get( content )
# Insert the content from html to target file
result = docs_service.documents().batchUpdate(documentId=target_file_id, body={ requests : request_content}).execute()
print(result)
# Delete html docs
driver_service.files().delete(fileId=content_file_id).execute()
print("Content inserted successfuly")
except HttpError as error:
# Delete html docs even if failed
driver_service.files().delete(fileId=content_file_id).execute()
print(f"An error occurred: {error}")
www.un.org/Depts/DGACM/index_spanish.htm 问题是:。 我从第2步中收集的内容与更新所需内容相符。 我试图将内容从第2步调整到第3步,但还没有成功。
www.un.org/Depts/DGACM/index_spanish.htm 目标解决办法: 采用超文本,insert,将超文本输入谷歌文件的目标档案。 这一目标与目标文件的现有内容而不是超标。
我的做法是否有意义? 你们是否还有其他想法来达到我的目标?