Похоже, что есть по крайней мере еще пара способов
с помощью итератора строк
rows, err := xlsx.Rows("Sheet1")
if err != nil {
log.Fatal(err)
}
for rows.Next() {
row := rows.Columns()
fmt.Printf("%s\t%s\n", row[1], row[3]) // Print values in columns B and D
}
или если вы знаете точный диапазон
n := 10001
for i := 1; i < n; i++ {
b := xlsx.GetCellValue("Sheet1", fmt.Sprintf("B%d", i))
d := xlsx.GetCellValue("Sheet1", fmt.Sprintf("D%d", i))
fmt.Printf("%s\t%s\n", b, d) // Print values in columns B and D
}
Я не изучал источник библиотеки, поэтому он может или не может иметь значение с точки зрения производительности и (или) использования памяти.