SQLiteコマンドラインインターフェイスには、SQLクエリの結果をExcelファイルで開くことができる便利な小さな機能があります。
クエリを実行すると、通常のようにコンソールに出力される代わりに、Excelスプレッドシート(またはLibreOffice、またはシステムがCSVファイルを開くために使用するプログラム)として開きます。
これを行うには、2つのオプションがあります。
- 一時ファイルを使用する
- 永続ファイルを使用します(つまり、後で使用するために保存します)
この記事では両方のオプションについて説明します。
一時ファイル
一時ファイルオプションを使用する場合、SQLiteは一時ファイルを書き込み、CSVファイル(Excel、LibreOfficeなど)のハンドラーを呼び出したらそのファイルを削除することでこれを行います。
これを行うには、.excel
を使用します または.once -x
コマンド(.excel
.once -x
のエイリアスです 。
.excel
を使用した一時ファイルメソッドの使用方法を示す例を次に示します。 コマンド。
.excel
SELECT * FROM Products;
私のシステムは現在LibreOfficeを使用してCSVファイルを開いているので、そのコードを実行すると、LibreOfficeでファイルが自動的に開かれました。スプレッドシートとして開いていたので、使用するセパレーターなどを選択できる通常の「インポート」プロンプトが表示されました。
これらはデフォルト設定であり、見栄えがします。したがって、OK
をクリックすると 、私はこれを手に入れました:
列ヘッダーの追加
.headers on
を使用できます 列名を追加します。
これは、列ヘッダーを追加する別の例です。この場合、.once -x
を使用します .excel
の代わりに (前述のように、.excel
.once -x
のエイリアスです 。
.headers on
.once -x
SELECT * FROM Products;
結果:
そして、OK
をクリックしたら 、私はこれを取得します:
したがって、今回は列ヘッダーを指定したことを除いて、同じことです。
パーマネントファイル
永続ファイルオプションを使用する場合は、最初にファイルを指定された場所に保存してから、.system
を使用します。 そのファイルを開くコマンド。
.output
を使用できます または.once
結果をファイルに保存するには、.system
を使用します テキストファイルを開くコマンド。
Macでこれを行う方法は次のとおりです。
.headers on
.mode csv
.once query_results.csv
SELECT * FROM Products;
.system open query_results.csv
これは、ファイルと同じディレクトリにいることを前提としています。それ以外の場合は、フルパスを使用する必要があります。
.system
コマンドは、CSVファイルを開くためのデフォルトのアプリケーションを使用してファイルを開きます。
Windowsシステムでは、.system
コードは次のようになります:
.system c:/data/query_results.csv
Linux / Unixの場合:
.system xdg-open query_results.csv