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 60 times, 1 visits today)