utf-8 bom付きのcsvをGASでスプシに出力する方法

utf-8 bom付きのcsvをGASでスプシに読み込む時に、

文字化けして苦労したので、

文字化けせずに変換できるコードを紹介します。

実際に私が使う事ができたので、utf-8 bom付きの文字コードに出会した方は試してみてください。

目次(クリックで読みたい部分にジャンプできます)

コード

まず以下のコードで実装が可能です。

実装概要

Googleドライブ内にあるcsvファイルをスプレッドシートに出力します。

※アップロードするファイル数は1つのみです。

準備するのは、csvファイルを格納するフォルダのIDになります。

//フォルダの中に一つだけcsvファイルを格納してください。

function CSVtoSS() {
const driveID = "Googleドライブ内のフォルダのIDを指定してください。"
const sheetname = "シートの名前";//出力するシートの名前を指定する。

const folder = DriveApp.getFolderById(driveID);//フォルダのID
const files  = folder.getFiles();
if(files.hasNext()){
  const file   = files.next();
  const fileId = file.getId();
  let values;

  //csvの文字コードがutf-8(BOM付き)を変換する処理。
  const blob = DriveApp.getFileById(fileId).getBlob();
  const csvBytes = blob.getBytes();
  const csvText = Utilities.newBlob(csvBytes.slice(3)).getDataAsString('UTF-8'); // BOMの3バイトをスキップ
  values = Utilities.parseCsv(csvText);

  //csvの内容をシートに出力する。
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetname);
  sheet.clear();//シートをリセット
  sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
  console.log(values)
}else{
  console.log("フォルダにファイルがありません")
 }
}

フォルダの中のファイルは現在は1つのみしかできないようになってます。

フォルダの中にはcsvファイルを一つのみにしてください。

まとめ

今回は、GASでcsvで utf-8 bom付きの文字コードをスプレッドシートに出力する方法について解説しました。

うまく使うことができたら教えてくださいね!ではまた!

(Visited 39 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA