プロフィール詳細はこちら, ※開始日と期日は右クリック>セルの書式設定>ユーザー定義でyyyy-m-dの形式で記述. いよいよ夏本番ですね!☀️もうお盆休みの計画は立てましたか? 我が家では「キャンプに連れてけー」って、連日のように言われています。, RedmineからExcelへのチケットインポート方法を、色々紹介してきました。 色々あり過ぎて、わたしも混乱しそうなので、今回、まとめてみました。, 各方法について、メリット、デメリットを紹介しているので、インポート方法を選択するときの参考にしてもらえると嬉しいです。関連する過去記事がある場合は、そのリンク先も記載しています。, わたしの知っているRedmineからExcelへのチケットインポート方法は、次の通りです。 (ほかにも色々あるかもしれません), Redmineからか(➀~➄)、MySQLからか(➅~➈)で、2つに大きく分類できます。, データベースの構造を知らなくても大丈夫なので、手軽にインポートできます。コード変換などの面倒な処理も、すべてRedmineがやってくれます。, 取得できる情報は、Redmineが用意しているものだけなので、画一的で自由度の低い点がデメリットです。各情報を関連付けて複雑な集計や分析をするのには、向いていません。, 「Power Query for Excel」を使えば、チケット一覧のURLを指定するだけで、直接Excelシート上にインポートできます。テーブルへの加工まで自動でしてくれるので、現時点で最も簡単な方法かもしれません。, このアドインは、「Power BI(ビジネスインテリジェンス)」への連携を目的にしたETLツールになっていて、Excelのテーブル(表)を操作する感覚で、データ加工できるのが特長です。, RESTで取得したXML形式のデータを。一旦ファイルに保存して、Excelの外部データ取り込み機能でインポートします。, Firefox(Webブラウザ)本体や「Poster(Firefoxのアドオン)」などのRESTクライアントを使えば、RESTとその結果のファイル保存ができます。, ExcelによるXMLファイルのインポートについては、次の記事で詳しく紹介しています。, 上記➁の一連の作業を、「Excel VBA」で自動実行する方法です。「Access VBA」でも同様のことができます。, CSVへのエクスポートはサーバーに負荷がかかるので、エクスポート数の上限が低めに設定されている場合があります。上限次第では、何回もに分けてエクスポートしなければならず、結構な手間がかかります。, また、Excel側の方も、大量のCSVの読み込みには、意外と時間がかかる場合があります。, 上記➃のCSVを、一旦Accessを経由して読み込む方法です。Accessは、ExcelよりもCSVの読み込みが速い上、「Schema.ini」を使用して、各カラムのデータタイプを設定することもできます。, ですが、この方法の一番の特長は、Accessの便利なクエリー機能を使って、データを変換・加工できる点だと思います。, Redmineの制約を受けないので、自由度が高く、必要に応じてデータを変換・加工してインポートできます。チケット(issuesテーブル)だけでなく、ユーザー情報やワークフローなど様々なデータをインポートできるので、Excelで設定をドキュメント化するのにも向いています。, 特に、「MySQL→Access→Excel」の連携は、Accessのクエリー機能を使って、データを変換・加工できるので便利です。, デメリットは、Redmineのデータベース構造の知識に加え、MySQLやAccess、Excelの少し高度な知識が必要なことです。ちょっと、敷居を高く感じるかもしれません。, MySQL(Redmine)にODBC接続したAccessを経由して、Excelにインポートする方法です。, Accessのクエリー機能を使ってデータを変換・加工した後、Excelに取り込むことができて便利です。, Accessを使わずに、ExcelをMySQL(Redmine)にODBC接続して、Excelにインポートする方法です。, インポートで使用するSQLの編集には、「Microsoft Query」を使用します。Accessは使いませんが、「Microsoft Query」自体がAccessの簡易版みたいな上に、ちょっと操作性がイマイチです。, 上記➆の「Power Query for Excel」版です。「Power Query for Excel」でインポートで使用するSQLを編集します。, 「Microsoft Query」がAccessの操作感でSQLを編集できるのに対して、「Power Query for Excel」はExcelのテーブルを操作する感覚でSQLを編集できます。, MySQL(Redmine)に接続した「A5:SQL Mk-2」の機能を使って、Excelシートに直接エクスポート(Excelから見ればインポート)できます。, […] 【まとめ】RedmineチケットをExcelに取り込む9通りの方法 […], 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。, Power Queryを使用すると、Redmineのチケット一覧画面から、直接Excelシートにチケットをインポートできます。RedmineでCSVエクスポートしてからインポートするよりも、手間がかからず便利ですね。エクスポート数の制約も受けません。, これまで紹介してきたMicrosoft AccessでMySQL(Redmine)を集計する実例を示したいと思い、公開されている良いデータはないかと色々考えた結果、Redmine公式サイトのチケットを取得して使うことにしました。, REST機能(RedmineAPI)を使って、Redmineにチケットを登録してみました。ExcelやAccessでマクロを組んで大量投入することもできますが、今回は、Firefoxのアドオン「Poster」からRESTする方法を紹介します。, Excelの機能で、複数のXMLファイルを一つのブックにまとめる方法を紹介します。Redmine公式サイトから取得したチケットの152個のXMLファイルを一つのブックにまとめました。XMLファイルの変換・加工にはExcelが便利ですよ。, MySQLのデータベースに、AccessからODBC経由でリンクする方法を紹介します。リンクテーブルを作成すれば、Accessの豊富な機能を利用したデータ処理が可能になります。, 以前、ODBCドライバーを使用して、AccessをMySQL(Redmine)に接続する方法を紹介しました。今回は、そのExcel版を紹介します。, MySQLのデータベースにPower Query for Excelからアクセスする方法, 新しいExcelのアドイン『Microsoft Power Query for Excel』を試してみました。クエリの編集は、まるでExcelのテーブルを操作するような感覚です。実際に、MySQLのデータベースからデータを抽出できましたので、その方法を紹介します。, 「A5:SQL Mk-2」は、無料の汎用SQL開発ツールです。MySQLには、ODBCドライバーが無くても接続することができます。, Bitnami Redmine Stackにリストアした古いデータベースを更新(Migrate), Windows10ではIISの無効化が必要、 Bitnami Redmine 3.2のインストール方法. | What is going on with this article? ' 皆さまこんにちは。アプレッソ開発部の佐々木です。 今回は、DataSpiderを使ってRedmineで管理されているチケットを読み取り、Excelファイルに出力してメール送信するスクリプトをご紹介したいと思います。, Redmineとは、プロジェクト管理、進捗管理、情報共有等で利用されているオープンソースのプロジェクト管理ソフトウェアです。 Redmineは、実施するべき作業、修正するべきバグなどのタスクを「チケット」としてプロジェクトに登録します。つまり、1件のタスクは1件のチケットとして、タスクの内容・優先度・担当者・期日・進捗状況などをRedmineで管理します。, チーム内でRedmineの情報を参照する場合はそのままWeb画面にアクセスすればいいですが、進捗報告や工数を集計して顧客にRedmineの情報を公開する場合、RedmineのWeb画面をそのまま見せるのではなく、ファイルに出力してから見せることがあります。 Redmineには、チケットの一覧をCSVやPDFなどの形式でエクスポートできるほか、 XLS Exportというプラグインを導入することでExcel形式でエクスポートすることも可能ですが、エクスポートされる内容はシンプルなリスト形式で履歴情報が無く、エクスポート後に集計や整形といった手間がかかったりします。 このような手間を軽減するために、チケットの取得、加工、Excelファイルへの出力、そしてExcelファイルをメールに添付して送信するという一連の処理をDataSpiderで自動化してみたいと思います。, RedmineにはREST APIが公開されていますので、DataSpiderのRESTアダプタを使いRedmineのREST APIを呼び出してチケットを取得します。取得したチケットを加工(フィルタ、クレンジングなど)した後、Excelファイルに出力してメールに添付して送信するというところまでやってみます。 次項では、DataSpiderのスクリプトの作成について説明していきます。スクリプトの処理すべてを説明すると今回の記事ではとても書き切れないのでポイントになる処理に絞って説明していきます。, チケットの[履歴]の追加と、強調したい項目(「期日」と「進捗率」)の背景色を変えて、XLS Exportとは異なるオリジナルのExcelレポートを作成してみます。, RESTアダプタのグローバルリソースでは、[URL]にRedmineのURLを入力します。, Redmine REST APIの認証方式は、ユーザ/パスワードによるBasic認証とAPIアクセスキーによる認証の2つの方式がありますが、Basic認証の場合、パスワードの保存が分散されて管理が煩雑になるので、今回はAPIアクセスキーによる認証を使います。 APIアクセスキーの取得は、Redmineの画面で[管理]-[設定]-[認証]タブを開き、[ RESTによるWebサービスを有効にする]にチェックを入れます。このチェックを入れることで、APIアクセスキーによる認証が利用できるようになります。 APIアクセスキーは、Redmineの画面で右上にある[個人設定]を開き、画面右にある「APIアクセスキー」の「表示」ボタンを押下することで取得できます。 取得したAPIアクセスキーは、RESTアダプタの各処理の[ヘッダ設定]タブにある[リクエストヘッダ]に設定します。設定するリクエストヘッダの[名前]と[値]は以下の通りです。, [format]はレスポンスのデータ形式を指定します。「json」を指定した場合JSON形式、「xml」を指定した場合はXML形式となります。RESTアダプタは両方の形式に対応していますが、ここでは「xml」を指定します。 RESTアダプタの「GET実行」処理の設定画面は以下のようになります。 [必須設定] オプションで以下のパラメータを[クエリパラメータ]で指定します。, 設定画面のoffsetパラメータの値が ${offset}になっていますが、これは「offset」というスクリプト変数を参照していることを表します。チケット一覧の取得では、一回のリクエストで取得できるチケットの上限はlimitの値に依存します。対象のプロジェクトがlimitの値よりも多く存在する場合、チケット一覧の取得処理を複数回に分けて行う必要になります。このとき、取得したチケットの数をoffsetに記録しておくことで、それまで取得したチケットをスキップしてチケット一覧取得処理を開始することが可能になります。 上記設定で「GET実行」処理を実行すると、レスポンスは以下のようなXMLデータになります。, issuesの子要素であるissue要素は、取得したチケットの数分出現します。このデータを、後続の分割繰り返し処理でissue要素ごとに分割し、チケットを一件ずつ処理します。, issue要素ごとに分割し、その中でチケットのIDを取得します。そして、取得したチケットIDをスクリプト変数に代入して、後続のRESTアダプタの「GET実行」処理の[パス]でスクリプト変数を参照します。 RESTアダプタの「GET実行」処理の設定画面は以下のようになります。 [必須設定] 今回は、チケットの履歴を取得するので、[クエリパラメータ]で「 include=journals」を指定します。 上記設定で「GET実行」処理を実行すると、レスポンスは以下のXMLデータになります。, 1つのjournal要素が1つの履歴を表しており、journals要素の子要素として履歴の数分出現します。journal要素の主な子要素、属性の説明は以下のとおりです。, Excelアダプタの「書き込み」処理で、1件ずつ分割されたチケットデータを挿入します。書き込み先のExcelファイルは、予め作成したテンプレートのExcelファイルをコピーしたものになります。 Excelアダプタの「書き込み」処理の設定画面は以下のようになります。 [必須設定] [書き込み設定], 一覧取得したすべてのケットをExcelファイルに書き込んだら、次の処理でメールに添付して送信します。メール送信にはメールアダプタの「1通メール送信」処理を使います。 作成したファイルをメール送信処理で添付するというパターンはDataSpiderでは数多く採用されています。 DataSpiderデザインパターンβ 第8回 設計パターン 「Mail&Excel Data Integration」でもご紹介していますので、そちらの記事もご一読いただければと思います。 メールアダプタの「1通メール送信」処理の設定は以下のようになります。 [必須設定] [メッセージ] [添付ファイル] スクリプトの完成イメージは以下のようになります。, スクリプトを実行し処理が成功すると、メールアダプタの「1通メール送信」処理で指定した宛先に「redmine_issues.xls」というファイルが添付されます。添付されたファイルの内容は以下のようになります。 このスクリプトを日次スケジュールトリガーで実行することで、Redmineからのレポートが1日1回自動でメール送信されるということも可能になります。, RESTアダプタを使うことでRedmineのデータを取得することができました。 今回利用したRedmineのREST APIはGETのみでしたが、チケットの登録や更新といったPOSTの処理も提供されているので、Redmineと別のシステムとの相互連携もDataSpiderで実現可能だと考えます。 もし、すでにDataSpiderを使ってRedmineと連携している方がいましたら、是非コメントを残していただけると幸いです。また、Redmineでこんな連携ができるともっと便利なんだけど、みたいなご意見もお待ちしております!, DataSpiderデザインパターンβ 第8回 設計パターン 「Mail&Excel Data Integration」, DataSpider Servista 3.1 Service Pack 1 新機能「REST アダプタ」のご紹介, 一回のリクエストで取得するチケット数の上限(デフォルトは「25」、最大値は「100」). > 0 Then         ‘拡張子がある場合は、拡張子を省く         sheet_name = Left(sheet_name, InStrRev(sheet_name, ".") まったり覚書 is powered by Wordpress. なんで Excel でやろうと思った? Redmine のチケットは一覧から CSV に出力することができますが、履歴が出力されないので微妙に不便です。 同じようなことを考えている方が多いようで、”Redmine CSV 履歴” で検索すると対策が見つかりました。 で、どうせなので、キレイな Excel これ自体は、REST API という機能があるので、以下のような URL にアクセスするだけです。, 通常であれば、 data.issue.name というように、JavaScript でオブジェクトを扱うのと同じ要領でデータを取得できるんですが、ここでVB固有の問題が。 セルや文字の色もそのまま載せたいので、スクリーンショットなどを貼り付けたりしていました。, 今回は、セルや文字の色もTextileに変換する様にソースを修正しましたので掲載します。, オプションのチェックボックスをクリックしたら、  https://qiita.com/acknpop/items/2c5e3aee4edfee197625, 生成されるコードが完結で、redmine側で表を更新していきたい場合は これだと、「name」とか「subject」といったプロパティにはアクセスできないんです…。*1, しょうがないので、CallByName 関数を使って、プロパティにアクセスします。, *1:どういう名前がNGなのかは、よく分かりませんでした。VBAの予約語が該当するという話もあったんですが、subject は予約語ではないのにエラーになりました。, chiheisenさんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?, Powered by Hatena Blog Excel マクロ(VBA)で Redmine の情報を取得して、表にまとめる方法を考えてみました。 よくあるかもしれない質問 Q. そして自分のタスク用にチケットも作成してみたのですが、入力が非常に面倒だったので、Excelからチケットを作成する方法を試してみました!, 某美大の油絵科を卒業後、大手CG映像プロダクションに入社。 現在は技術系のCGデザイナーをしています。 その後ゲーム業界に転職。 – 1)     End If     Set sheet = book.Worksheets(sheet_name), ‘ フォーマットする     Call prcFormatting(sheet) End Sub     Sub prcFormatting(sheet As Worksheet), Dim row           As Long     Dim max_row       As Long     Dim col           As Long     Dim max_col       As Long     Dim my_col        As Long     Dim width_array   As Variant     Dim default_width As Integer             ‘ カスタムフィールドがある場合は、この配列の後ろにセル幅を追記してください。     ‘ セル幅定義        1***********5*************10****************15*****************20     width_array = Array(4, 8, 8, 8, 7, 40, 10, 8, 10, 10, 10, 10, 4, 4, 4, 15, 15)                              ‘ 幅     default_width = 40         ‘ セル範囲     max_row = sheet.Range("A65536").End(xlUp).row     max_col = ActiveCell.CurrentRegion.Columns.Count                ‘ シート全体の調整     sheet.Range(sheet.Cells(1, 1), sheet.Cells(max_row, max_col)).HorizontalAlignment = xlHAlignLeft     sheet.Range(sheet.Cells(1, 1), sheet.Cells(max_row, max_col)).VerticalAlignment = xlVAlignTop     sheet.Range(sheet.Cells(1, 1), sheet.Cells(max_row, max_col)).WrapText = True         ‘ ボーダーの設定     sheet.Range(sheet.Cells(1, 1), sheet.Cells(max_row, max_col)).Borders(xlEdgeLeft).LineStyle = xlContinuous     sheet.Range(sheet.Cells(1, 1), sheet.Cells(max_row, max_col)).Borders(xlEdgeTop).LineStyle = xlContinuous     sheet.Range(sheet.Cells(1, 1), sheet.Cells(max_row, max_col)).Borders(xlEdgeRight).LineStyle = xlContinuous     sheet.Range(sheet.Cells(1, 1), sheet.Cells(max_row, max_col)).Borders(xlInsideVertical).LineStyle = xlContinuous     sheet.Range(sheet.Cells(1, 1), sheet.Cells(max_row, max_col)).Borders(xlEdgeBottom).LineStyle = xlContinuous     sheet.Range(sheet.Cells(1, 1), sheet.Cells(max_row, max_col)).Borders(xlInsideHorizontal).LineStyle = xlContinuous, ‘ ヘッダの調整     sheet.Range(sheet.Cells(1, 1), sheet.Cells(1, UBound(width_array) + 1)).ColumnWidth = width_array     sheet.Range(sheet.Cells(1, UBound(width_array) + 2), sheet.Cells(1, max_col)).ColumnWidth = default_width     sheet.Range(sheet.Cells(1, 1), sheet.Cells(1, max_col)).Interior.ColorIndex = ThisWorkbook.Sheets(1).Cells(6, 1).Interior.ColorIndex     sheet.Range(sheet.Cells(1, 1), sheet.Cells(1, max_col)).Font.ColorIndex = ThisWorkbook.Sheets(1).Cells(6, 1).Font.ColorIndex     sheet.Range(sheet.Cells(1, 1), sheet.Cells(1, max_col)).Font.Bold = True     sheet.Range(sheet.Cells(1, 1), sheet.Cells(1, max_col)).HorizontalAlignment = xlCenter     sheet.Range(sheet.Cells(1, 1), sheet.Cells(1, max_col)).VerticalAlignment = xlCenter         sheet.Range("A1").AutoFilter     sheet.Rows(1).AutoFit         ‘ ちらつき防止     Application.ScreenUpdating = False         For row = max_row To 2 Step -1               ‘ チケット番号が空の行を削除する         If IsEmpty(sheet.Cells(row, 1)) Then             sheet.Range(row & ":" & row).Delete         Else             ‘ 色設定を取得する             Set FR = ThisWorkbook.Sheets(1).Range("A7:A16").Find(sheet.Range("B" & row).Text)             If Not FR Is Nothing Then                my_col = FR.Interior.ColorIndex             End If, ‘ データのある行に色を付ける             sheet.Range(sheet.Cells(row, 1), sheet.Cells(row, max_col)).Interior.ColorIndex = my_col         End If     Next row End Sub. Redmine のチケットは一覧から CSV に出力することができますが、履歴が出力されないので微妙に不便です。, 同じようなことを考えている方が多いようで、”Redmine CSV 履歴” で検索すると対策が見つかりました。, で、どうせなので、キレイな Excel シートになるように、マクロ作ってExcelテンプレート(xlt)にしてみました。 マクロを実行すると、こんな感じのエクセルになります。, ついでに、↓のようにテンプレートにチケットの状態名を書いて「セルの書式の設定」で背景色を指定すると、結果のエクセルに反映されるようにしてみました。, コードはこんな感じです。Excel で Visual Basic Editor を開き、Sheet1 にコピペしてから、テンプレート(xlt) で保存すれば使えます。, Sub prcApplicationGetOpenFilename()     Dim file_name   As Variant     Dim book        As Workbook     Dim sheet_name  As String     Dim sheet       As Worksheet         ‘ファイルを開くダイアログを開きます     file_name = _         Application.GetOpenFilename( _             FileFilter:="エクセルファイル(*.csv),*.csv" _             , FilterIndex:=1 _             , Title:="インポート" _             , MultiSelect:=False _         ), ‘ファイルを開く     If file_name <> False Then         Set book = Workbooks.Open(Filename:=file_name)     End If         ‘ フォーマットするシート名を求める     sheet_name = Dir(file_name)     If InStr(1, sheet_name, ".")

ドヒドイデ 夢特性 盾 17, オオクワガタ 産卵 二回目 12, Paradise Lost~beside You~ 7, Princess Be Ambitious!! 5, れ いわ 新選 組 ブログ Youtube 6, フォートナイト ガフ 入手方法 11, ハリネズミ 病院 代 4, 木材 買取 茨城 5, 野ばら のブログ Kinki 11, Kohh 歌詞 Far Away 8, Lost Song 1話 動画 5, 足裏 アーチを作る テーピング 5, ピアス 排除 過程 4, バイオ3 Re Mod 21, モルヒネ 副作用 呼吸抑制 5, Xperia Xz1 フィルム 100均 6, 面会交流 再婚相手 同伴 4, アイドリング 失火 症状 6, Sweetness Sweet 違い 6, Tableau Offline Activation 4, Ff14 発光 武器 20, 片対数グラフ 書き方 周波数 10, 木挽 ブルー 糖 質 5, 爪 白い部分 透明 13, Skysea Client View Sysprep 6, 50代 リストラ 逆転 5, スプラ トゥーン 2 音楽 ダウンロード 14, 車検 諸費用 先払い 7, アウトバック Bs9 ヒューズボックス 12,