CSVファイルをGoogleスプレッドシートに取り込んだとき、文字化けが発生して困った経験はありませんか?特に、Excelで作成したCSVファイルを取り込むと、日本語が「????」のように表示されてしまうことがあります。今回は、そんな悩みを解消するために、Google Apps Script(GAS)を使ってスプレッドシートにCSVを正しく取り込む方法をご紹介します。初心者の方でも安心して実践できる内容ですので、ぜひ最後までご覧ください。
CSVファイルの文字化けの原因とは?
CSVファイルは、データをカンマで区切ったテキストファイルです。しかし、文字コードの設定が適切でないと、日本語が正しく表示されません。例えば、Shift_JISで保存されたCSVをUTF-8で読み込むと、文字化けが発生します。
Google Apps Script(GAS)を使って文字化けを防ぐ方法
GASを使うことで、スプレッドシートにCSVを正しく取り込むことができます。以下の手順で実装してみましょう。
スプレッドシートのスクリプトエディタを開く
まず、Googleスプレッドシートを開き、上部メニューの「拡張機能」から「Apps Script」を選択します。
スクリプトを記述する
以下のコードをスクリプトエディタに貼り付けてください。
function importCSVFromDrive() {
const folderId = 'YOUR_FOLDER_ID'; // CSVファイルが保存されているフォルダのID
const folder = DriveApp.getFolderById(folderId);
const files = folder.getFiles();
while (files.hasNext()) {
const file = files.next();
const csvData = file.getBlob().getDataAsString('Shift_JIS'); // 文字コードを指定
const csvArray = Utilities.parseCsv(csvData);
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.clear(); // 既存のデータをクリア
sheet.getRange(1, 1, csvArray.length, csvArray.length).setValues(csvArray);
}
}
フォルダIDの取得方法
Googleドライブで対象のフォルダを開き、URLからフォルダIDをコピーします。例えば、URLが「(https://drive.google.com/drive/folders/abc123xyz456」の場合、フォルダIDは「abc123xyz456」です。
スクリプトの実行
スクリプトエディタで「importCSVFromDrive」関数を選択し、実行ボタンをクリックします。初回実行時には、権限の承認が求められますので、指示に従って承認してください。
文字化けを防ぐためのポイント
文字コードの指定CSVファイルがShift_JISで保存されている場合、`getDataAsString(‘Shift_JIS’)`とすることで、文字化けを防げます。
setValuesの使用`setValues`を使って一括でデータを入力することで、処理速度が向上します。
よくある質問や疑問
Q1: CSVファイルがUTF-8で保存されている場合、文字コードの指定は必要ですか?
はい、UTF-8で保存されている場合でも、`getDataAsString(‘UTF-8’)`と明示的に指定することで、文字化けを防げます。
Q2: 複数のCSVファイルを一度に取り込むことはできますか?
はい、上記のスクリプトでは、指定したフォルダ内のすべてのCSVファイルを順番に処理するようになっています。
Q3: CSVファイルの内容が大きい場合、処理が遅くなりますか?
大きなファイルを処理する際は、`setValues`の使用や、データの分割処理など、効率的な方法を検討することをおすすめします。
まとめ
今回は、Google Apps Scriptを使って、スプレッドシートにCSVを正しく取り込む方法をご紹介しました。文字化けの原因とその対策を理解し、実際にスクリプトを使って自動化することで、作業効率が大幅に向上します。もし、さらに詳しいカスタマイズや自動化の方法について知りたい方は、お気軽にLINEでご相談ください。




コメント