잠시만 기다려 주세요

HOME   |  여기는?   |  바다물때표   |  여러가지 팁 (888)  |  추천 및 재미 (153)  |  자료실 (20)  |  끄적거림 (520)  |  시나리오 (760)  |  드라마 대본 (248)  |  

2020년 09월 23일
절제하니 또 절제가 된다. 사람의 의지는 생각보다 정말 강하다. - 바다아이
 




    golang

golang - 엑셀, csv 파일 읽고 쓰기
이 름 : 바다아이   |   조회수 : 2676         짧은 주소 : https://www.bada-ie.com/su/?631591779184
1. CSV 파일 읽기

Go에서 CSV(Comma Separated Values) 파일을 처리하기 위해 "encoding/csv" 패키지를 사용한다. 
csv 패키지는 CSV 파일을 읽거나 쓰는 기능을 제공한다.

CSV 파일을 읽기 위해선 먼저 csv.NewReader() 를 실행하여 csv 파일 포맷을 읽을 수 있는 Reader를 생성하고, 
이 리더로부터 Read() 혹은 ReadAll() 메서드를 호출하여 데이타를 읽어들인다. Read()는 한 라인을 읽어 들이고, 
ReadAll()은 전체를 한꺼번에 읽어들인다.

아래 예제는 test.csv 파일을 ReadAll()을 사용하여 모두 읽어 들여 [][]string 슬라이스에 넣은 후, for 루프를 사용하여 
각 Cell의 내용을 출력하는 코드이다.

 
package main
 
import (
    "bufio"
    "encoding/csv"
    "fmt"
    "os"
)
 
func main() {
    // 파일 오픈
    file, _ := os.Open("./test.csv")
 
    // csv reader 생성
    rdr := csv.NewReader(bufio.NewReader(file))
 
    // csv 내용 모두 읽기
    rows, _ := rdr.ReadAll()
 
    // 행,열 읽기
    for i, row := range rows {
        for j := range row {
            fmt.Printf("%s ", rows[i][j])
        }
        fmt.Println()
    }
}
 
2. CSV 파일 쓰기

CSV 파일을 쓰기 위해서는 csv.NewWriter() 를 실행하여 CSV 포맷으로 쓸 수 있는 Writer를 생성하고, 
이 Writer로부터 Write() 혹은 WriteAll() 메서드를 호출하여 데이타를 쓰게된다. Write()는 하나의 레코드를 쓰고, 
WriteAll()은 전체 레코드를 한꺼번에 쓰고 Flush를 호출한다.

 
package main
 
import (
    "bufio"
    "encoding/csv"
    "os"
)
 
func main() {
    // 파일 생성
    file, err := os.Create("./output.csv")
    if err != nil {
        panic(err)
    }
 
    // csv writer 생성
    wr := csv.NewWriter(bufio.NewWriter(file))
 
    // csv 내용 쓰기
    wr.Write([]string{"A", "0.25"})
    wr.Write([]string{"B", "55.70"})
    wr.Flush()
}

출처 : http://golang.site/go/article/117-CSV-%ED%8C%8C%EC%9D%BC-%EC%9D%BD%EA%B3%A0-%EC%93%B0%EA%B8%B0
| |


      1 page / 6 page
번 호 카테고리 제 목 이름 조회수
173 golang , String Formatting 바다아이 230
172 golang rand.Intn , random, , . 바다아이 243
171 golang golang ... 바다아이 1411
170 golang golang gopath, goroot .. 바다아이 1064
169 golang golang ... Force download file example 바다아이 1562
168 golang golang , , cpu, memory, disk 바다아이 2286
167 golang golang , ... GOOS, GOARCH 바다아이 1609
166 golang golang checkbox ... 바다아이 1842
165 golang golang , , http .... 바다아이 1778
164 golang golang nil , nil , nil ... 바다아이 1875
163 golang 2 golang, go , .... golang .... 바다아이 2678
162 golang golang postgresql, mysql, mariadb ... ` Grave () .. .. 바다아이 1952
161 golang golang postgresql mysql, mariadb scan , null .. 바다아이 2047
160 golang golang , iconv 바다아이 2194
159 golang golang quote escape, unquote 바다아이 2110
158 golang golang , http errorLog , , ... 바다아이 2214
157 golang golang interface , 바다아이 2147
156 golang golang struct .... 바다아이 2276
155 golang golang map map , 바다아이 2132
154 golang golang map .... .... 바다아이 2103
153 golang golang slice copy 바다아이 2060
152 golang golang goto 바다아이 2142
151 golang golang slice sort , int, string, float64 바다아이 2208
150 golang URL Parsing, url . parse 바다아이 2272
149 golang golang , interface{} ... 바다아이 2196
148 golang golang interface to string, , , map slice json 바다아이 2045
147 golang golang How to convert JSON string to map and slice, json 바다아이 2198
146 golang golang , file write, Writing Files 바다아이 2325
145 golang golang Insert Line or String to File, , , , , 바다아이 2074
144 golang golang replace 바다아이 2153
| |








Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ FreeBSD + GoLang + PostgreSQL ]
서버위치 : vultr.com 서울  실행시간 : 0.05772
to webmaster... gogo sea. gogo sea.