これはスプレッドシートからCSVを出力したり、バリデーションを簡単にするgoogle app scriptです。
下記で該当のシートのあるアカウントにOAuthでログインします
clasp login
依存モジュールなどの取得
npm install
.clasp.json
↑このファイルがトップに必要です。
{
"scriptId":"ここにapp scriptで作ったスクリプトIDを指定してください",
"rootDir": "./src"
}
※注意下記コマンドは指定したプロジェクトを書き換えます!既に存在している場合は十分注意して実行ください。
npm run push
.envにscriptIdを準備しておけば上記の.clasp.jsonを作成してデプロイをするスクリプトを置きました。
sh deploy.sh
上記で失敗する場合は
https://script.google.com/home/usersettings
で有効化が必要
App Scriptで「onOpen」でスプレッドシートにメニューを追加します(CSV出力用)
ただし↑上記の実行時に下記のプライベート情報へのアクセスを許可する必要があります。
settingsシートに設定を記載します。
設定シートの内容は下記
| # | 内容 | Assign | 値 | 備考 |
|---|---|---|---|---|
| 1 | ヘッダ行最終(0~) | rowOffset | 3 | |
| 2 | ヘッダ列列最終(0~) | columnOffset | 2 | |
| 3 | 格納フォルダID | saveFolder | xxxxxxxxxxxxxxxxx | |
| 4 | カラム定義シート | columnsSheet | columns | |
| 5 | 追加情報 | omake | <iframe src="something"></iframe> | omake押下時にhtmlをレンダリング |
| 6 | ファイルPREFIX | prefix | file_ |
今は位置固定(D2、D3、D4、D5、D6、D7)です
出力&型&バリデーション定義はシート「カラム定義シート(上記の場合columns)」に記載
| # | 名称 | 型 | validation |
|---|---|---|---|
| 0 | 例1 | string | requireNotNull: |
| 1 | 例2 | string | requireNotNull:requireStringSize(50) |
| 2 | 例3 | string | requireNotNull: |
| 3 | 例4 | string | requireNotNull: |
| 4 | 例5 | string | requireNotNull: |
名称はバリデーションのみ使用しています。
型は出力時のフォーマット等に利用しています、現在下記。
| 名称 | 意味 |
|---|---|
| string | ダブルクォートのエスケープ |
| number | カンマを除去します |
| date | シリアル値を日付変換します |
| bool | 特に何もしません |
バリデーションは現在下記(複数ある場合は:でつなげます。)
=record_check(レンジ)
のような形式でバリデーション結果を返します
| 名称 | 意味 |
|---|---|
| requireNotNull | 必須 |
| requireStringSize(50) | 文字列上限 |
| requiredNumericRange(0,100) | 数値範囲 |
| requiredRegexp(^[a-zA-Z]+$) | 正規表現合致 |
extraメニューのCSVユーティリティで起動します
その後右のサイドバーとしてダイアログが出ますので、レンジ(行の範囲を指します、2-5のような指定)を指定してダウンロードCSVでCSVが出力できます。
