使用自动列宽(v3 API)从JavaScript将数据导入Google表格
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用自动列宽(v3 API)从JavaScript将数据导入Google表格相关的知识,希望对你有一定的参考价值。
我正在编写javascript浏览器/客户端代码,需要将基于表/网格的数据上传到Google表格,而我在设置列宽方面遇到了麻烦。数据作为数组数组存储在JavaScript中。
到目前为止,我已尝试将格式化为CSV文件的数据上传到“/ upload / drive / v3 / files”,并将“application / vnd.google-apps.spreadsheet”MIME类型设置为元数据的一部分。这就像我可以在驱动器中打开文件作为Google表格一样。但是,所有列的大小都相同且很小。我的许多单元格包含大约300个字符的文本,因此所有文本都被截断并且看起来很糟糕。
理想情况下,列会调整大小以适应最长的条目。如果我可以设置宽度值也可以。
我需要上传大约100个表格,因此它们需要是单独的文件或单个电子表格上的单独表格。我想减少我需要进行的API调用的数量,因为我有很多用户。
我想到的想法:
- 如上所述上传然后使用额外的API调用来更改列的尺寸。鉴于大约有100张桌子,这不是我想要做的。
- 有没有办法使用Drive API创建文件,然后使用Sheets API添加指定列宽的数据?如果可能的话,我宁愿每桌只做一次请求。
- 将JS中的数据转换为Excel编码或OpenOffice格式数据,并对其进行编码并上传。这会有用吗?如果有其他选择,这感觉很复杂。
如果没有办法让Google表格在上传时自动调整列数,我很惊讶,因为这似乎是导入CSV数据时的常见期望。
您想要创建一个包含CSV文件的100张电子表格。将CSV数据中的表导入工作表时,您需要创建新工作表并导入该表。然后,您想要自动修改列的长度。如果我的理解是正确的,这个方法怎么样?
我认为sheets.spreadsheets.batchUpdate
可以实现你的目标。 sheets.spreadsheets.batchUpdate
可以通过向请求数组添加方法来顺序运行批处理。您的情况的简单示例如下。
Flow :
- 在
### fileId ###
的电子表格中创建一个新工作表。 你可以免费提供sheetId
作为Int32。此示例使用1000000001
。 - 将数据导入到创建的工作表。
请将CSV数据的每一行导入
pasteData
。此示例提供2行。delimiter
是,
。 - 使用
autoResizeDimensions
调整列宽。 这样,列宽会根据导入值的长度自动调整大小。
在此示例中,可以通过一个API调用运行这些流。
Endpoint
POST https://sheets.googleapis.com/v4/spreadsheets/### fileId ###:batchUpdate
Request body :
{
"requests":[
{"addSheet":{"properties":{"title":"sssample","sheetId":1000000001}}},
{"pasteData":{"data":"##########sampletext1##########,##########sampletext2##########,##########sampletext3##########","delimiter":",","coordinate":{"rowIndex":0,"columnIndex":0,"sheetId":1000000001}}},
{"pasteData":{"data":"##########sampletext4##########,##########sampletext5##########,##########sampletext6##########","delimiter":",","coordinate":{"rowIndex":0,"columnIndex":0,"sheetId":1000000001}}},
{"autoResizeDimensions":{"dimensions":{"dimension":"COLUMNS","sheetId":1000000001,"startIndex":0,"endIndex":3}}}
]
}
Note :
- 请根据您的情况修改以上样品申请正文。
- 如果您已经创建了工作表,请从请求正文中删除
addSheet
。 - 我无法知道请求正文中方法数量的限制,因此如果您的情况有限制,请将其分开。
References :
如果我误解你的问题,我很抱歉。
要格式化单元格,请查看Basic Formatting指南。它包括有关如何指定宽度大小的说明。其他支持的方法在Sheets API reference中找到,其中包括creating spreadsheets。
以上是关于使用自动列宽(v3 API)从JavaScript将数据导入Google表格的主要内容,如果未能解决你的问题,请参考以下文章
无法从 Google Maps Javascript API 的自动完成中选择地址
Google Maps JavaScript API v3 方向功能
使用 Google Maps JavaScript API v3 和 Geocoding API 映射多个位置
Javascript - Google Drive v3 API和功能
如何使用 Ajax 和 JSON 在 javascript 中使用 v3 URL API 获取 Youtube 视频标题