개발/go
[golnag] 기초 excelize
xwing
2021. 1. 18. 13:14
Golang excelize 를 이용해서 excel 파일 읽기
go get github.com/360EntSecGroup-Skylar/excelize
package main
import (
"fmt"
"log"
"github.com/360EntSecGroup-Skylar/excelize"
)
func main() {
xlsx, err := excelize.OpenFile("./test.xlsx")
if err != nil {
panic(err)
}
// sheet name
activeSheet := xlsx.GetActiveSheetIndex()
activeSheetName := xlsx.GetSheetName(activeSheet)
// get value (시트명, 셀위치)
log.Println(xlsx.GetCellValue(activeSheetName, "A2"))
// get rows (시트명으로)
rows := xlsx.GetRows(activeSheetName)
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
}
코드 개요
- 라이브러리 임포트: fmt (출력), log (로그), 그리고 github.com/360EntSecGroup-Skylar/excelize (엑셀 파일 처리) 라이브러리를 가져옵니다.
- 엑셀 파일 열기: ./test.xlsx 경로에 있는 엑셀 파일을 excelize.OpenFile() 함수를 사용하여 엽니다. 파일 열기에 실패하면 프로그램을 중단하고 오류를 발생시킵니다.
- 활성화된 시트 정보 가져오기: 현재 활성화된 시트의 인덱스를 가져온 다음, 해당 인덱스를 사용하여 시트 이름을 가져옵니다.
- 특정 셀 값 읽기: xlsx.GetCellValue() 함수를 사용하여 현재 활성화된 시트에서 A2 셀의 값을 읽어 로그로 출력합니다.
- 모든 행 읽기: xlsx.GetRows() 함수를 사용하여 현재 활성화된 시트의 모든 행을 가져옵니다.
- 행과 셀 출력: 가져온 각 행과 그 안에 있는 각 셀의 값을 반복하여 출력합니다. 각 셀 값 사이에는 탭(\t)을, 각 행의 끝에는 새 줄을 삽입합니다.
1 20 21
2 21 23
3 22 25
4 23 27
5 24 29
6 25 31
7 26 33
8 27 35
9 28 37
감사합니다.