如何使用API​​格式化Google表格电子表格单元格?

tbe*_*eda 4 google-api google-sheets google-api-client google-drive-api google-sheets-api

我的应用程序生成一个数据表,并在用户的Google云端硬盘中创建一个新的电子表格文档.如何为单个单元格添加格式(颜色,字体粗细,宽度等)?我似乎无法找到任何文档,更不用说我可以通过它来实现这一点google-api-ruby-client.

我的大多数调查结果都追溯到Google API邮件列表,表明它不受支持.
但是,我发现另一个应用程序实现了我想要的结果.将文档导出到Google云端硬盘的"Smartsheet"示例:

来自Smartsheet.com:

在Smartsheet.com

在我的Google云端硬盘中生成的表单:

在我的Google云端硬盘中

wes*_*cpy 5

(2017年2月) 从Google I/O 2016开始,开发人员现在可以使用Google表格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()
Run Code Online (Sandbox Code Playgroud)

如果有帮助,我也就这个主题制作了一个开发者视频(见下文).顺便说一句,您可以在Ruby中执行相同的操作(请参阅其API快速入门示例)或Google API客户端库支持的任何其他语言.

Sheets API提供旧版本中不可用的功能,即为开发人员提供对Sheet的编程访问,就像使用用户界面一样(冻结行,单元格格式[!],调整行/列大小,添加数据透视表,创建图表等) ).如果您是API新手,我已经制作了一些视频,其中包含更多"真实世界"的示例:

如您所知,Sheets API主要用于如上所述的面向文档的功能,但是要执行文件级访问,例如导入/导出,复制,移动,重命名等,请改用Google Drive API.


小智 4

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();
Run Code Online (Sandbox Code Playgroud)

我们已经能够通过 Apache POI 将 Smartsheet 导出到具有格式设置的 Excel 文件。添加导出到 Google 电子表格对我们来说实现起来非常简单,并且它提供了一些超出您可以通过 API 执行的附加功能。

抱歉回复延迟 - 刚刚遇到这个问题。