개발/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()
	}
}

코드 개요

  1. 라이브러리 임포트: fmt (출력), log (로그), 그리고 github.com/360EntSecGroup-Skylar/excelize (엑셀 파일 처리) 라이브러리를 가져옵니다.
  2. 엑셀 파일 열기: ./test.xlsx 경로에 있는 엑셀 파일을 excelize.OpenFile() 함수를 사용하여 엽니다. 파일 열기에 실패하면 프로그램을 중단하고 오류를 발생시킵니다.
  3. 활성화된 시트 정보 가져오기: 현재 활성화된 시트의 인덱스를 가져온 다음, 해당 인덱스를 사용하여 시트 이름을 가져옵니다.
  4. 특정 셀 값 읽기: xlsx.GetCellValue() 함수를 사용하여 현재 활성화된 시트에서 A2 셀의 값을 읽어 로그로 출력합니다.
  5. 모든 행 읽기: xlsx.GetRows() 함수를 사용하여 현재 활성화된 시트의 모든 행을 가져옵니다.
  6. 행과 셀 출력: 가져온 각 행과 그 안에 있는 각 셀의 값을 반복하여 출력합니다. 각 셀 값 사이에는 탭(\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

 

감사합니다.