我的应用程序生成一个数据表,并在用户的Google Drive中创建一个新的电子表格文档。如何添加格式(颜色、字体粗细、宽度等)到单个细胞吗?我似乎找不到任何文档,更不用说如何通过google-api-ruby-client实现它了。
我的大多数发现都可以追溯到Google API邮件列表,声明它不受支持。
然而,我发现另一个应用程序实现了我想要的结果。"Smartsheet“将文档导出到Google Drive的示例:
来自Smartsheet.com:

在我的Google Drive中生成的工作表:

发布于 2013-06-14 04:13:12
Smartsheet利用Google API的功能导入Excel文件。代码大致是这样的:
DocsService client = new DocsService(<YOUR APP NAME>);
client.setOAuthCredentials(<OAUTH PARAMETERS>);
DocumentListEntry newEntry = new SpreadsheetEntry();
newEntry.setMediaSource(new MediaByteArraySource(<EXCEL FILE BYTE ARRAY OUTPUT STREAM>, DocumentListEntry.MediaType.XLS.getMimeType()));
newEntry.setTitle(new PlainTextConstruct(<FILE NAME>));
DocumentListEntry insertedEntry = client.insert(new URL("https://docs.google.com/feeds/default/private/full/"), newEntry);
// This is your URL to the new doc
String docUrl = insertedEntry.getDocumentLink().getHref();我们已经能够通过Apache POI将Smartsheet导出为带有格式的Excel文件。将导出添加到Google电子表格对我们来说实现起来非常简单,它提供了一些额外的功能,而不是通过API可以完成的功能。
对于延迟的响应,很抱歉--恰巧遇到这个问题。
发布于 2017-03-09 12:58:43
(2017年2月) As of Google I/O 2016,开发人员不再需要导出到,也不再需要创建具有所需格式的新工作表,因此其他答案现在已过时。现在可以使用Google Sheets API设置单元格的格式。下面是一个简短的Python示例,其中加粗了第一行(假设文件ID是SHEET_ID,SHEETS是API服务端点):
DATA = {'requests': [
{'repeatCell': {
'range': {'endRowIndex': 1},
'cell': {'userEnteredFormat': {'textFormat': {'bold': True}}},
'fields': 'userEnteredFormat.textFormat.bold',
}}
]}
SHEETS.spreadsheets().batchUpdate(
spreadsheetId=SHEET_ID, body=DATA).execute()如果有帮助的话,我还制作了一个关于这个主题的开发人员视频(见下文)。顺便说一句,您可以在Ruby (参见its API quickstart sample)或Google APIs Client Libraries支持的任何其他语言中做同样的事情。
Sheets API提供了旧版本中没有的功能,即允许开发人员以编程方式访问工作表,就像使用用户界面一样(冻结行、单元格格式!、调整行/列大小、添加透视表、创建图表等)。如果您是API的新手,我已经创建了一些视频,其中包含更多“真实世界”的示例:
要了解通过Google Sheets的REST API或Google Apps Script还能做些什么,请查看我的其他videos。可以看出,Sheets API主要用于上述document-oriented功能,但是要执行文件-level访问,如导入/导出、复制、移动、重命名等,请使用Google Drive API。
发布于 2012-12-04 12:53:13
API只提供对数据的访问,并不公开任何添加格式的方法。
https://stackoverflow.com/questions/13693612
复制相似问题