合并谷歌文档模板中的数据

时间:2016-01-14 11:28:53

标签: python google-app-engine google-api google-drive-api google-docs

我尝试使用python和Google Docs将数据合并到Google Drive API文件中。

我已经将这种类型的语法添加到我的doc文件:{name}并用这样的数据填充它(在Google App Engine上运行的python代码):

self.content = self.drive_service_auth._http.request(self.download_url)

其中self.download_url是docs文件的url en self.content是此文件的内容。然后我合并这样的数据:

self.content = self.content.replace('{' + name + '}', value)

然后将文件保存回云端硬盘:

# metadata from generated document
body = {'title': title,
        'description': desc,
        'mimeType': 'text/html',
        'parents': [{'id': folder_id}]}

# generate new document
media_body = MediaIoBaseUpload(StringIO(self.content.encode('ascii', 'xmlcharrefreplace')), 'text/html', resumable=False)
drive_result = self.drive_service_auth.files().insert(body=body, media_body=media_body, convert=True).execute() 

这样做,数据被插入到doc文件中。但是,原始(模板)文件的标记与新文件的标记不同,我没有对它进行控制。

我认为这是因为doc文件在我的python代码中转换为HTML,当我保存它时,它会转换回原始格式(我认为是XML)。在这些转换中,我认为标记丢失/改变了。

是否有更好的方法来实现我的目标,即合并Google Docs文件中的数据,同时仍保留将标记放入模板文件的选项?一种不会破坏原始文件标记的方法。

0 个答案:

没有答案