SQLDiagRunner.Runner.ExecuteQueriesAndSaveToExcel C# (CSharp) 메소드

ExecuteQueriesAndSaveToExcel() 개인적인 메소드

private ExecuteQueriesAndSaveToExcel ( ExcelPackage pck, string connectionstring, IEnumerable queries, string database, string worksheetPrefix, bool autoFitColumns, int queryTimeoutSeconds ) : void
pck OfficeOpenXml.ExcelPackage
connectionstring string
queries IEnumerable
database string
worksheetPrefix string
autoFitColumns bool
queryTimeoutSeconds int
리턴 void
        private void ExecuteQueriesAndSaveToExcel(
            ExcelPackage pck,
            string connectionstring,
            IEnumerable<SqlQuery> queries,
            string database,
            string worksheetPrefix,
            bool autoFitColumns,
            int queryTimeoutSeconds
        )
        {
            foreach (var q in queries)
            {
                string query = GetQueryText(q, database);
                string worksheetName = GetWorkSheetName(q.Title, worksheetPrefix);

                ExcelWorksheet ws = pck.Workbook.Worksheets.Add(worksheetName);
                try
                {
                    ws.Cells["A1"].Value = database;

                    DataTable datatable = QueryExecutor.Execute(connectionstring, query, queryTimeoutSeconds);
                    if (datatable.Rows.Count > 0)
                    {
                        ExcelRangeBase range = ws.Cells["A2"].LoadFromDataTable(datatable, true);

                        ws.Row(2).Style.Font.Bold = true;

                        // find datetime columns and set formatting
                        int numcols = datatable.Columns.Count;
                        for (int i = 0; i < numcols; i++)
                        {
                            var column = datatable.Columns[i];
                            if (column.DataType == typeof(DateTime))
                            {
                                ws.Column(i + 1).Style.Numberformat.Format = "yyyy-mm-dd hh:MM:ss";
                            }
                        }

                        if (autoFitColumns)
                        {
                            range.AutoFitColumns();
                        }
                    }
                    else
                    {
                        ws.Cells["A2"].Value = "None Found";
                    }
                }
                catch (Exception ex)
                {
                    ws.Cells["A2"].Value = ex.Message;
                }
            }
        }