我正在编写JavaScript浏览器/客户端代码,需要将基于表/网格的数据上传到Google表格,而我在设置列宽方面遇到了麻烦。数据作为数组数组存储在JavaScript中。
到目前为止,我已尝试将格式化为CSV文件的数据上传到“/ upload / drive / v3 / files”,并将“application / vnd.google-apps.spreadsheet”MIME类型设置为元数据的一部分。这就像我可以在驱动器中打开文件作为Google表格一样。但是,所有列的大小都相同且很小。我的许多单元格包含大约300个字符的文本,因此所有文本都被截断并且看起来很糟糕。
理想情况下,列会调整大小以适应最长的条目。如果我可以设置宽度值也可以。
我需要上传大约100个表格,因此它们需要是单独的文件或单个电子表格上的单独表格。我想减少我需要进行的API调用的数量,因为我有很多用户。
我想到的想法:
如果没有办法让Google表格在上传时自动调整列数,我很惊讶,因为这似乎是导入CSV数据时的常见期望。
您想要创建一个包含CSV文件的100张电子表格。将CSV数据中的表导入工作表时,您需要创建新工作表并导入该表。然后,您想要自动修改列的长度。如果我的理解是正确的,这个方法怎么样?
我认为sheets.spreadsheets.batchUpdate
可以实现你的目标。 sheets.spreadsheets.batchUpdate
可以通过向请求数组添加方法来顺序运行批处理。您的情况的简单示例如下。
### fileId ###
的电子表格中创建一个新工作表。
你可以免费提供sheetId
作为Int32。此示例使用1000000001
。pasteData
。此示例提供2行。
delimiter
是,
。autoResizeDimensions
调整列宽。
这样,列宽会根据导入值的长度自动调整大小。在此示例中,可以通过一个API调用运行这些流。
POST https://sheets.googleapis.com/v4/spreadsheets/### fileId ###:batchUpdate
{
"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}}}
]
}
addSheet
。如果我误解你的问题,我很抱歉。
要格式化单元格,请查看Basic Formatting指南。它包括有关如何指定宽度大小的说明。其他支持的方法在Sheets API reference中找到,其中包括creating spreadsheets。