[英]slice bounds out of range [:9] with capacity 6
我正在開發一個 Golang 應用程序,該應用程序將從 Google 表格中獲取數據(總共有 9 列,其中一些信息為空白),然后將 output 到 a.csv 以“|”分隔。
但是,在 output 期間,我收到此錯誤: panic: runtime error: slice bounds out of range [:9] with capacity 6
這是我的代碼:
spreadsheetId := "xxx"
readRange := "MASTER!A1:I"
resp, err := srv.Spreadsheets.Values.Get(spreadsheetId, readRange).ValueRenderOption("FORMATTED_VALUE").Do()
if err != nil {
log.Fatalf("Unable to retrieve data from sheet: %v", err)
}
file, err := os.Create("result.csv")
if err != nil {
log.Fatal("Cannot create file", err)
}
defer file.Close()
for _, row := range resp.Values {
row = row[:9]
data := fmt.Sprintf("%s|%s|%s|%s|%s|%s|%s|%s|%s\n", row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8])
var dataNew = data
dataNew = strings.Replace(dataNew, "\n", "", -1)
fmt.Fprint(file, dataNew + "\n")
}
雖然它設法完美地將 output 超過 20 行放入 a.csv 中,但它崩潰然后到達只有 6 個具有一定值的單元格的行,而其他單元格為空。
如果我刪除row = row[:9] - 應用程序會在第 5 行出現恐慌,該行有 7 個單元格,總共有 9 個值。 錯誤消息是:恐慌:運行時錯誤:索引超出范圍 [7],長度為 7
我在 Go 中相當新,所以我不完全確定這里有什么問題。
您可以在行中使用連接操作,而不是手動索引每個項目。 例如:
package main
import (
"fmt"
"strings"
)
func main() {
rows := []string{"1", "2", "3", "4", "5"}
data := strings.Join(rows, "|")
fmt.Println(data)
}
這將打印:
1|2|3|4|5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.