티스토리 뷰
코드를 이용하여 CSV 파일을 작성할때 전화번호와 같이 0으로 시작하는 숫자를 CSV파일 또는 엑셀에 write하는 경우 맨앞의 0이 사라지는 경우가 발생한다.
예를 들어 "01012345678"을 저장하고 싶을 때, 저장 후 CSV파일을 열어보면 "1012345678"가 입력되어 있는 경우가 있는데,
이 경우 "=\"01012345678\"" 형식으로 저장하면 원하는 값을 저장할 수 있다.
package main
import (
"encoding/csv"
"log"
"os"
"path"
"time"
)
func main() {
csvFilename := "result_" + time.Now().Format("2006-01-02_15_04_05") + ".csv"
csvPath := path.Join("./" + csvFilename)
os.Remove(csvPath)
tmpXlxsFile, err := os.Create(csvPath)
if err != nil {
log.Println("file created error occured : ", err)
return
}
csvWriter := csv.NewWriter(tmpXlxsFile)
if err := csvBaseFormat(csvWriter); err != nil {
log.Println("csv base format writer error occured : ", err)
return
}
// row := []string{"01012345678"} => csv 저장결과: 1012345678
row := []string{"=\"01012345678\""} // csv 저장결과: 01012345678
csvWriter.Write(row)
csvWriter.Flush()
}
func csvBaseFormat(writer *csv.Writer) (err error) {
baseFormat := []string{"PhoneNumber"}
err = writer.Write(baseFormat)
return
}
cf. 코드 기준으로 escape문이 추가된 것이므로 실제 csv 파일에서 작성할때는 ="01012345678"을 적으면 된다.
728x90
'dev > etc' 카테고리의 다른 글
기계식키보드 적축, 버티컬마우스 구입 (엠스톤 Groove T87A / 앤커 A7852M) (1) | 2021.01.07 |
---|---|
ASCII CODE alphabet / 아스키코드 알파벳 대소문자 (0) | 2020.05.30 |
댓글