# Aseet

Aseet（**As**sist for spreadsh**eet**）は、Excelスプレッドシートの操作を支援するCLIツールです。  
以下に使い方を記載します。

## 対応アーキテクチャ

Aseetはwindows amd64に対応しています。

## 対応ファイルフォーマット

Aseetは以下のフォーマットに対応しています。

- xlam
- xlsm
- xlsx
- xltm
- xltx

> [!NOTE]
> xls（Excel97-2003ブック）には対応していません。

## セットアップ

[aseet.exeをダウンロード](https://github.com/p1tchbend-tool/Aseet/releases/latest) して、任意のディレクトリに配置します。  
配置したexeにパスを通します。

## アンインストール

配置したexeを削除します。  
また以下の一時ファイル保存用ディレクトリも、必要に応じて削除します。

```text
%LOCALAPPDATA%\aseet
```

## コマンド

各コマンドについて記載します。

### cat

使用方法: `aseet cat [file]`  
  
Excelファイルのシート名やセルの値を出力します。  
オプションなしで実行した場合、シート一覧を出力します。  

| オプション    | 説明                                               |
| ------------- | -------------------------------------------------- |
| -a, --all     | 全てのシートの値をページャーで表示します。         |
| -f, --formula | セルの値が数式の場合、値ではなく数式を表示します。 |
| -n, --name    | 指定したシートの値を表示します。                   |

> [!TIP]
> ページャーの操作方法は画面下部に表示されます。  
> マウスで操作することもできますが、キーボード操作の方が安定動作します。

### clear

使用方法: `aseet clear`  
  
Aseetが使用する一時ファイルをすべて削除します。

### diff

使用方法: `aseet diff [file or directory] [file or directory]`  
  
2つのExcelファイルのシート名やセルの内容を比較し、ページャーで差分を出力します。  
ディレクトリを指定した場合、ディレクトリ以下（サブディレクトリ含む）のExcelファイルを探索し、同じファイル名のものを比較します。  
なお、ファイルとディレクトリを比較することはできません。

| オプション    | 説明                                                                                              |
| ------------- | ------------------------------------------------------------------------------------------------- |
| -f, --formula | セルの値が数式の場合、値ではなく数式を比較します。                                                |
| -n, --name    | 指定したシートの値を比較します。                                                                  |
| -o, --open    | ファイルを比較する場合、2つのファイルを一時ファイルにコピーし、既定のアプリケーションで開きます。 |

以下のように、Gitの比較ツールとして登録することもできます。

```powershell
git config --global difftool.aseet.cmd 'aseet diff "$LOCAL" "$REMOTE"'
git config --global alias.aseet 'difftool -d -t aseet'
```

> [!TIP]
> `git aseet` でファイルを比較します。

### grep

使用方法: `aseet grep [pattern] [file or directory]`  
  
Excelファイルまたはディレクトリから、指定した文字列を含むセルを正規表現で検索します。

| オプション        | 説明                                               |
| ----------------- | -------------------------------------------------- |
| -f, --formula     | セルの値が数式の場合、値ではなく数式を検索します。 |
| -l, --hyperlink   | ハイパーリンクも検索します。                       |
| -i, --ignore-case | 大文字小文字を区別しません。                       |
| -r, --recursive   | サブディレクトリも再帰的に検索します。             |

### sd

使用方法: `aseet sd [search] [replace] [file or directory]`  
  
Excelファイルまたはディレクトリから、指定した文字列を含むセルを正規表現で置換します。  
オプションなしで実行した場合、セルの値のみを置換します。

| オプション        | 説明                                   |
| ----------------- | -------------------------------------- |
| -f, --formula     | 数式のみを置換します。                 |
| -l, --hyperlink   | ハイパーリンクのみを置換します。       |
| -i, --ignore-case | 大文字小文字を区別しません。           |
| -n, --name        | 指定したシートの値を置換します。       |
| -r, --recursive   | サブディレクトリも再帰的に置換します。 |

### touch

使用方法: `aseet touch [file]`  
  
空のExcelファイルを作成します。  
フォーマットは.xlsx固定となり、それ以外の拡張子を指定した場合、自動で.xlsxが補完されます。  
すでにファイルが存在する場合、タイムスタンプを更新します。

## ライセンス

本アプリは、[MIT ライセンス](https://github.com/p1tchbend-tool/Aseet/blob/main/LICENSE.txt) で提供されます。  
サードパーティーソフトウェアのライセンスについては、[こちら](https://github.com/p1tchbend-tool/Aseet/blob/main/NOTICE.md) を参照してください。

## 連絡先

本アプリに関するご連絡は、[こちら](<mailto:p1tchbend.tool@gmail.com>) までお願いいたします。
