//サイト一覧テーブルを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); }
//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() + ")"); }); }