//サイト一覧テーブルをExcelファイルで出力 private void create_site_info_book() { Task.Run(() => { //共通デリゲートインスタンス d_status_messenger message = w_status_messenger; d_ldr_activate ldr_activate = w_ldr_activate; d_task_cancel canceler = w_task_cancel; d_get_workDir _d_get_workDir = w_get_workDir; if (ldr_activated == false) { //Libraドライバ起動しエラーの場合早期退出 if (!(Boolean)this.Invoke(ldr_activate)) { return; } } ldr.home(); this.Invoke(message, "Libraにログインします。(" + DateUtil.get_logtime() + ")"); ldr.login(); DateUtil.app_sleep(shortWait); List <List <string> > data = ldr.get_site_info_data(); List <string> head_row = new List <string>() { "ID", "サイト名", "備考", "検査期間" }; data.Insert(0, head_row); //タスクのキャンセル判定 if ((Boolean)this.Invoke(canceler)) { return; } string save_dir = (string)this.Invoke(_d_get_workDir); string save_filename = save_dir + "Libra検査サイト一覧_" + DateUtil.fetch_filename_logtime() + ".xlsx"; ExcelUtil eu = new ExcelUtil(); eu.save_xlsx_as(data, save_filename); ldr.logout(); this.Invoke(message, "処理が完了しました。(" + DateUtil.get_logtime() + ")"); }); }
//Excel出力 private void save_as_excel() { List <List <string> > data = new List <List <string> >(); Func <DataGridView, List <string> > _head_row = delegate(DataGridView gr) { List <string> arr = new List <string>(); for (int i = 0; i < gr.Columns.Count; i++) { string col_name = gr.Columns[i].HeaderText; arr.Add(col_name); } return(arr); }; List <string> head_row = _head_row(reportGridTable); for (int i = 0; i < reportGridTable.RowCount; i++) { DataGridViewRow cols = reportGridTable.Rows[i]; List <string> row_data = new List <string>(); for (int j = 0; j < cols.Cells.Count; j++) { string col_val = ""; if (cols.Cells[j].Value != null) { col_val = (string)cols.Cells[j].Value; } row_data.Add(col_val); } data.Add(row_data); } string save_path = main_form.w_get_workDir(); string projectID = main_form.w_get_projectID(); string save_filename = save_path + projectID + "_data_grid_repo_" + DateUtil.fetch_filename_from_datetime("xlsx"); data.Insert(0, head_row); ExcelUtil eu = new ExcelUtil(); eu.save_xlsx_as(data, save_filename); }
//レポートを生成 private void create_survey_report() { Task.Run(() => { //共通デリゲートインスタンス d_status_messenger message = w_status_messenger; d_ldr_activate ldr_activate = w_ldr_activate; d_task_cancel canceler = w_task_cancel; //専用デリゲートインスタンス(条件系) d_get_basic_auth_cond _d_get_basic_auth_cond = w_get_basic_auth_cond; d_get_source_flag _d_get_source_flag = w_get_source_flag; d_is_pageID_selected _is_pageID_selected = w_is_pageID_selected; d_is_guideline_selected _is_guideline_selected = w_is_guideline_selected; //専用デリゲートインスタンス(取得系) d_get_workDir _get_workDir = w_get_workDir; d_get_projectID _get_projectID = w_get_projectID; d_pageID_data get_page_rows = w_pageID_data; d_guideline_data get_guideline_rows = w_guideline_data; d_get_pageID_sufix get_pageID_sufix = w_get_pageID_sufix; d_get_guideline_sufix get_guideline_sufix = w_get_guideline_sufix; //ファイル名サフィックス取得 string guideline_sufix = (string)this.Invoke(get_guideline_sufix); string pageID_sufix = (string)this.Invoke(get_pageID_sufix); Boolean is_pageID_selected = (Boolean)this.Invoke(_is_pageID_selected); Boolean is_guideline_selected = (Boolean)this.Invoke(_is_guideline_selected); if (is_pageID_selected == false) { this.Invoke(message, "【エラー】ページIDが選択されていません!処理を停止します。"); return; } if (is_guideline_selected == false) { this.Invoke(message, "【エラー】達成基準が選択されていません!処理を停止します。"); return; } if (ldr_activated == false) { //Libraドライバ起動しエラーの場合早期退出 if (!(Boolean)this.Invoke(ldr_activate)) { return; } } ldr.home(); this.Invoke(message, "Libraにログインします。(" + DateUtil.get_logtime() + ")"); ldr.login(); DateUtil.app_sleep(shortWait); string projectID = (string)this.Invoke(_get_projectID); ldr.projectID = projectID; //サイト名取得 this.Invoke(message, "レポートインデックスページに移動します。(" + DateUtil.get_logtime() + ")"); ldr.browse_repo(); DateUtil.app_sleep(shortWait); string site_name = ldr.get_site_name(); //タスクのキャンセル判定 if ((Boolean)this.Invoke(canceler)) { return; } //pageIDコンボから選択値を取得 List <string> guideline_rows = (List <string>) this.Invoke(get_guideline_rows); //guidelineコンボから選択値を取得 List <List <string> > page_rows = (List <List <string> >) this.Invoke(get_page_rows); this.Invoke(message, "レポート詳細ページに順次アクセスしていきます。(" + DateUtil.get_logtime() + ")"); //タスクのキャンセル判定 if ((Boolean)this.Invoke(canceler)) { return; } //レポートデータ初期化 List <List <string> > rep_data = new List <List <string> >(); //guidelineのループ for (int i = 0; i < guideline_rows.Count; i++) { string guideline = guideline_rows[i]; string guideline_disp = guideline; guideline = "7." + guideline; //タスクのキャンセル判定 if ((Boolean)this.Invoke(canceler)) { return; } //pageのループ for (int j = 0; j < page_rows.Count; j++) { List <string> page_row = page_rows[j]; string pageID = page_row[0]; string pageURL = page_row[1]; this.Invoke(message, pageID + ", " + guideline_disp + " を処理しています。 (" + DateUtil.get_logtime() + ")"); string path = ldr.fetch_report_detail_path(pageID, guideline); ldr.wd.Navigate().GoToUrl(path); DateUtil.app_sleep(shortWait); List <List <string> > tbl_data = ldr.get_detail_table_data(pageID, pageURL, guideline); rep_data.AddRange(tbl_data); } } //Excelレポート処理 this.Invoke(message, "Excelファイルへの書き出しを開始します。(" + DateUtil.get_logtime() + ")"); List <string> head_row = TextUtil.get_header(); rep_data.Insert(0, head_row); string save_dir = (string)this.Invoke(_get_workDir); string save_filename = save_dir + projectID + "_" + site_name + "_" + guideline_sufix + "_" + pageID_sufix + " " + " 検査結果 " + DateUtil.fetch_filename_logtime() + ".xlsx"; //タスクのキャンセル判定 if ((Boolean)this.Invoke(canceler)) { return; } ExcelUtil eu = new ExcelUtil(); eu.repo_task_save_xlsx(rep_data, save_filename); ldr.logout(); this.Invoke(message, "処理が完了しました。(" + DateUtil.get_logtime() + ")"); }); }
//PID+URLのExcelファイル出力 private void do_create_pid_url_list_xlsx() { Task.Run(() => { //共通デリゲートインスタンス d_status_messenger message = w_status_messenger; d_ldr_activate ldr_activate = w_ldr_activate; d_task_cancel canceler = w_task_cancel; //専用デリゲートインスタンス(条件系) d_get_UrlTask_source_flag _get_UrlTask_source_flag = w_get_UrlTask_source_flag; d_is_pageID_selected _is_pageID_selected = w_is_pageID_selected; //専用デリゲートインスタンス(取得系) d_get_workDir _get_workDir = w_get_workDir; d_get_projectID _get_projectID = w_get_projectID; d_pageID_data get_page_rows = w_pageID_data; if (ldr_activated == false) { //Libraドライバ起動しエラーの場合早期退出 if (!(Boolean)this.Invoke(ldr_activate)) { return; } } ldr.home(); this.Invoke(message, "Libraにログインします。(" + DateUtil.get_logtime() + ")"); ldr.login(); DateUtil.app_sleep(shortWait); string projectID = (string)this.Invoke(_get_projectID); ldr.projectID = projectID; string flag = (string)this.Invoke(_get_UrlTask_source_flag); List <List <string> > data = new List <List <string> >(); string site_name = ""; if (flag == "report") { this.Invoke(message, "レポートインデックスページに移動します。(" + DateUtil.get_logtime() + ")"); ldr.browse_repo(); DateUtil.app_sleep(shortWait); //タスクのキャンセル判定 if ((Boolean)this.Invoke(canceler)) { return; } site_name = ldr.get_site_name(); data = ldr.get_page_list_data(); } else if (flag == "combo") { if (!(Boolean)this.Invoke(_is_pageID_selected)) { this.Invoke(message, "ページIDが選択されていません。処理を停止します。"); ldr.logout(); this.Invoke(message, "処理を停止しました。(" + DateUtil.get_logtime() + ")"); return; } this.Invoke(message, "レポートインデックスページに移動します。(" + DateUtil.get_logtime() + ")"); ldr.browse_repo(); DateUtil.app_sleep(shortWait); //タスクのキャンセル判定 if ((Boolean)this.Invoke(canceler)) { return; } site_name = ldr.get_site_name(); data = (List <List <string> >) this.Invoke(get_page_rows); } else if (flag == "svpage") { this.Invoke(message, "検査メイン画面に移動します。(" + DateUtil.get_logtime() + ")"); ldr.browse_sv_mainpage(); DateUtil.app_sleep(longWait); data = ldr.get_page_list_data_from_svpage(); //タスクのキャンセル判定 if ((Boolean)this.Invoke(canceler)) { return; } this.Invoke(message, "レポートインデックスページに移動します。(" + DateUtil.get_logtime() + ")"); ldr.browse_repo(); DateUtil.app_sleep(shortWait); site_name = ldr.get_site_name(); //タスクのキャンセル判定 if ((Boolean)this.Invoke(canceler)) { return; } } //ヘッダー行の処理 List <string> head_row = new List <string>() { "PID", "URL" }; data.Insert(0, head_row); string save_dir = (string)this.Invoke(_get_workDir); string save_filename = save_dir + projectID + "_" + site_name + " URL.xlsx"; //タスクのキャンセル判定 if ((Boolean)this.Invoke(canceler)) { return; } ExcelUtil eu = new ExcelUtil(); eu.save_xlsx_as(data, save_filename); ldr.logout(); this.Invoke(message, "処理が完了しました。(" + DateUtil.get_logtime() + ")"); }); }