读取大型数据必备方法!
写入数据
先在表格内写入 100 万个单元格的数据。
function myFunction () {
const arr = new Array(100000).fill(['test'])
SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getRange(1, 1, arr.length, 1).setValues(arr)
}
性能测试
然后来测试一下三种不同的方式获取数据的耗时。
function myFunction () {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]
console.time('getValues')
sheet.getRange('A:A').getValues()
console.timeEnd('getValues')
console.time('getDisplayValues')
sheet.getRange('A:A').getDisplayValues()
console.timeEnd('getDisplayValues')
console.time('sheet API')
const sheetID = SpreadsheetApp.getActiveSpreadsheet().getId()
Sheets.Spreadsheets.Values.get(sheetID, 'test!A:A').values
console.timeEnd('sheet API')
}
从测试结果可以看出 getDisplayValues 运行的速度最慢,getValues 会稍微快一点点,但是使用 Sheet API 的方法获取数据,速度要快很多。
使用方法
先添加 Google Sheets API 服务
然后使用以下代码
Sheets.Spreadsheets.Values.get(sheetID, 'test!A:A').values
sheetID 是当前表格的 ID,然后后面的参数是表格的名称和范围,写法有点类似于 IMPORTRANGE 函数。