2015年5月16日土曜日

ツイッターのツイート履歴CSVを文字化けしないようにExcelに取り込む方法

How to import tweets CSV files into Excel
2013年頃からTwitterは自分が投稿したツイートをCSVファイルでダウンロード出来るようになりました。
このCSVファイルを無加工でExcelで開くと文字化けして使い物になりません。
文字化けしないようにExcelで開けるようにするまでの手順をまとめてみました。


環境

・Windows 8.1
・Excel 2010


全ツイート履歴を要求するしCSVファイルをダウンロードする

全ツイート履歴はPCのブラウザーでTwitterにログインして設定画面から要求できます。
AndroidのTwitter公式アプリは全ツイート履歴の要求画面が見当たりませんでした。
このボタンをクリックすると、ダウンロードURLが書かれたメールが届き、zipファイルでダウンロードできます。
zipファイルをかいとうすると「tweets.csv」という目的のCSVファイルがあるはずです。


Excelで開く前に文字エンコードをShift_JISに変換する

tweets.csvをExcelで開くと文字化けするのはCSVファイルの文字コードがUTF-8だからです。
Shift_JISのCSVファイルならExcel出文字化けせずに開けます。
ツイート履歴のCSVファイルの文字コードをShift_JISに変換して保存すれば、UTF-8に依存した文字は失われますが改行箇所はそのままExcelに取り込めます。

MtkはEmEditorを使っているのですが、EmEditorならcsvファイルを開いて「全てエンコードを指定して保存」で「シフトJIS」を選択すればShift_JISに変換できます。
フリーの文字コード変換ツールならコマンドライン専用ですがnkfというものがあるようです。


Shift_JISに変換しない場合は細工が必要

手間はかかりますがCSVファイルを細工すればUTF-8のままExcelで開くことが出来ます。
詳しくは続けて説明しますが、大まかに次の操作が必要でした。
  • ファイル名の拡張子をtxtに変更する
  • 行の途中の改行を削除する
  • Excelでテキストファイルの区切り文字と引用符を指定して開く


ファイル名の拡張子をtxtに変更する

ExcelへのShift_JIS以外のCSVファイルの取込は文字化けの原因になるのですが、テキストファイルの取込ならUTF-8でも文字化けしません。
Excelへテキストファイルとして取り込むためツイート履歴のCSVファイルの拡張子をtxtに変更します。


行の途中の改行を削除する

Twitterに改行を含む文章を投稿するとCSVファイルのツイート履歴も改行されています。
下の図だと、50行目と52行目はそれぞれ前の行の途中で改行しています。
文章中の改行を残したままのテキストファイルはこの後のに取り込みで失敗することがあったので、投稿文の改行を削除します。
改行の削除には正規表現で置換できるテキストエディターが必要です。
EmEditorでの方法を説明します。
EmEditorでtweets.csvを開きます。
Ctrlキーを押しながらHキーを押すか、メニューの 検索 - 置換を開きます。
次のように操作します。入力する内容を間違えるとファイルの内容が壊れます。

  • 検索する文字
    \n([^"])
  • 置換後の文字列
    $1
  • 正規表現を使用するをチェック
この状態で[全て置換]ボタンをクリック


Excelでテキストファイルの区切り文字と引用符を指定して開く

Excelのメニュー
ファイル - 開く
でテキストファイルを開きいます。
「カンマやタブなどの区切り文字によって・・・」を選択して次へ。
区切り文字はカンマを選択して次へ
列のデータ形式は文字列を選択します。
この画面のデータプレビューに全部で10列くらいありると思いますが列を一つずつクリックしてそれぞれの列のデータ形式を文字列に設定して完了です。

エラーや文字化けがなければ成功です。


使い道は

Excelに取り込めたら検索なりフィルターなりで過去の投稿を好きなように見ることが出来ます。
Webアプリの勉強がてらにツイートを投稿したり削除するツールを作りたかったのですが検索APIに制限があったので、Excelで削除したいツイートのステータスIDを探して画面にコピーペーストするツールのために使ってます。
なお、他人のツイート履歴はダウンロードできません。


関連ブログ

[セキュリティ] Twitterの「このリンクは安全ではない」「このリクエストを保留しています」の対策2015年版
ツイッターAPIの検索で複数の画像URLが取得できない対策方法
Blogger.com(blogspot)のブログにツイッターカード(リンク先のプレビュー)を設定する
[Android] アプリからツイートするとハッシュタグが消える(URLエンコード漏れ)
[GIMP] GIFアニメーションの作り方

以上、参考になれば幸いです。

0 件のコメント:

コメントを投稿