LoginSignup
15
1

More than 1 year has passed since last update.

PleasanterからPowerShellを使ってCSVデータをエクスポートする

Last updated at Posted at 2021-12-21

概要

プリザンターにはレコードの内容をCSVファイルでエクスポートするという、すてきな機能が搭載されています。
しかもなんと、API経由でも出力することができるのです。
早速PowerShellを使ってプログラムを書いてみましょう。

エクスポートの設定

あらかじめ出力したいテーブルにエクスポートの設定を行いましょう。

2021-12-21_18h48_16.png

・公式マニュアル
https://pleasanter.org/manual/table-management-export

左上の ID の部分は後で使うので覚えておきましょう。

サンプルコード

またまた公式マニュアルを参考にPowerShellでプログラムを作ってみました。
https://pleasanter.org/manual/api-export

expport.ps1
Add-Type -AssemblyName "System.Web"
$error.Clear()

$requestUrl = "http(s)://[プリザンターのアドレス]/api/items/[サイトID]/export"
$apiKey = "[プリザンターのAPIKEY]"

$json = @{
    ApiVersion = 1.1
    ApiKey = $apiKey
    ExportId = 1 
}

trap [Net.WebException] { continue; }
try {   
    $requestBody = $json | ConvertTo-Json 
    $res = Invoke-RestMethod -Uri $requestUrl -ContentType "application/json" -Method POST -Body ${requestBody}
} catch {   
    Write-Output $_.Exception
}

# ファイル出力
[System.Text.Encoding]::UTF8.GetString([System.Text.Encoding]::GetEncoding("ISO-8859-1").GetBytes($res.Response.Content)) | Out-File -NoNewline test.csv

jsonデータの ExportId はあらかじめ作っておいたプリザンターのエクスポート設定の ID と同じ値にします。

最後に文字化け対策を施してファイル出力をしています
test.csvの部分が保存される実際のファイル名になります。

文字化け対策はこちらを参考にさせていただきました
https://qiita.com/zaki-lknr/items/1ae3258d7b77c5e2a2ba

CSVファイルの中身

2021-12-21_18h43_42.png
プリザンターから直接エクスポートしたものと同様のファイルになればOK

(自動化したい場合)タスクスケジューラで自動化

たとえば毎日ある時刻にCSVファイルを生成するといった処理を行いたい場合は
作成した.ps1ファイルをタスクスケジューラで動かすとよいです。

タスクスケジューラへの登録は以前書いたこの記事に記載してあります。
https://qiita.com/kTsuji/items/ab2aed5682e1406dd413#%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%B9%E3%82%B1%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%A9%E3%81%A7%E7%9B%A3%E8%A6%96

さいごに

作成されたCSVを・・・

・指定されたメールアドレスに自動送信
・プリザンターと連携するシステムにCSVデータを自動送信

メールAPIなどを活用すれば上記のような応用ができるのでは?と思います。

プリザンターのちょっとした、ほんのちょっとした小技の紹介でした。

15
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
1