본문 바로가기
컴퓨터

[gsheet] 구글 시트에서 현재 시트를 csv파일로 다운 받기 (한글 깨짐 해결)

by skyjwoo 2024. 8. 25.
728x90
반응형

 

구글 시트에서 현재 시트를 csv 파일로 다운로드(파일 → 다운로드 → 쉼표로 구분된 값) 받을 경우, 한글은 깨짐 현상이 있다.

 

 

한글 깨짐 현상

 

그래서! apps script를 활용하여 utf-8 형식의 csv 파일을 한글 깨짐 없이 다운로드하는 시트를 공유한다. 

 

1. 사용 방법

(세팅)

- 아래 3.번에서 사본 만들기 링크 클릭하여 사본 만들기

- 권한 허용 받기(맨 처음 실행 시)

Custom Menu - Download Active Sheet as CSV 클릭 - 확인 - 계정 선택 - 고급 - 제목 없는 프로젝트(으)로 이동(안전하지 않음) - 허용

 

(사용)

(1) csv로 변환할 시트에 커서를 두기(해당 시트의 셀 아무데나 한번 클릭)

(2) Custom Menu - Download Active Sheet as CSV 클릭하기

 

 

2. 본인 시트에 apps script를 추가하여 사용하기

사용 방법 중 세팅에서 아래 내용을 먼저 해주면 됩니다.

- 확장 프로그램 → Apps Script에 아래 코드 추가하고, 저장하기(ctrl+s)

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
    .addItem('Download Active Sheet as CSV', 'downloadActiveSheetAsCSV')
    .addToUi();
}

function downloadActiveSheetAsCSV() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var csvContent = convertSheetToCsv_(sheet);

  // BOM을 추가하여 UTF-8로 인식하게 함
  var bom = '\uFEFF';
  var csvContentWithBom = bom + csvContent;

  var htmlTemplate = HtmlService.createHtmlOutput(
    '<html><body>' +
    '<a href="data:text/csv;charset=utf-8,' + encodeURIComponent(csvContentWithBom) +
    '" download="' + sheet.getName() + '.csv">Download CSV</a>' +
    '<script>document.querySelector("a").click();</script>' +
    '</body></html>'
  );

  SpreadsheetApp.getUi().showModalDialog(htmlTemplate, 'Download CSV');
}

function convertSheetToCsv_(sheet) {
  var data = sheet.getDataRange().getValues();
  var csv = "";

  data.forEach(function(row) {
    csv += row.map(function(cell) {
      return "\"" + cell.toString().replace(/"/g, "\"\"") + "\"";
    }).join(",") + "\n";
  });

  return csv;
}

 

 

3. 새 시트로 만들어 사용하기

아래 링크를 클릭하여 사본을 만들어 사용할 수 있습니다.

툴의 개선 사항이나 제안 사항을 댓글로 달아주세요!

 

링크

 

Google Sheets: 로그인

이메일 또는 휴대전화

accounts.google.com

 

해당 시트로 다운로드 시, 깨지지 않는 걸 확인할 수 있습니다.



아래 링크들에서 다른 Google Sheet 툴들을 만나보실 수 있습니다!

1. Google Sheet 에서 두 텍스트 비교하기(링크)

2. Google Sheet를 활용한 gmail 자동화 (링크)

3. Google Sheet에서 GPT 사용해보기 (링크)

4. Google Sheet에서 키워드 색칠하기 (링크)

 

[gsheet] 구글 시트에서 두 텍스트 비교하기

두 텍스트(문자열)를 비교하는 웹 툴은 많이 있습니다. 과거에는 이 사이트에서 많이 썼었고,https://wepplication.github.io/tools/compareDoc/ 텍스트 문서 비교 사이트두개의 텍스트 비교하여 틀린점 찾아

skyjwoo.tistory.com

 

 

[gsheet] 구글 시트에서 키워드만 색칠하기

구글 시트에서 작성된 글들을 볼 때, 특정 키워드만 색칠하고 싶은 순간이 있는데요. 별도의 함수가 없기 때문에 확실히 번거로움이 있습니다. 이 점을 해결하고자 새로 툴을 만들었는데요. 본

skyjwoo.tistory.com

 

 

[gsheet] 구글 스프레드 시트에서 GPT를 활용하는 방법

오랜만의 포스팅입니다.구글 스프레드 시트는 데이터 관리와 분석을 위한 강력한 도구입니다. 하지만 여기에 인공지능(AI)의 힘을 더한다면 어떨까요? 바로 GPT(Generative Pre-trained Tra

skyjwoo.tistory.com

 

 

[gsheet] gmail 자동화 (개인별 메일 한 번에 보내기)

오늘은 gsheet를 활용하여 다수의 사람에게 개인화된 메일을 한 번에 보내는 방법에 대해 알아보고자 한다.    배경앞서 설명한 바와 같이 gsheet를 활용해서 목적: 기존 gsheet 기반 메일 머지(Mail

skyjwoo.tistory.com

 

 

 

728x90
반응형

댓글