Esempio n. 1
0
        public static void GenerateWorksheet(ExcelWorksheets worksheets, DataTable dataTable, string strWorksheetName)
        {
            try
            {
                ExcelWorksheet ws;
                if (worksheets.Count(w => w.Name == strWorksheetName) == 0)
                {
                    ws = worksheets.Add(strWorksheetName);
                    Log.LogMessage("Adding new Worksheet: " + strWorksheetName);
                }
                else
                {
                    ws = worksheets[strWorksheetName];
                    ws.Cells.Clear();
                    Log.LogMessage("Clearing Values for Worksheet: " + strWorksheetName);
                }

                int cols = ws.Dimension?.Columns ?? dataTable.Columns.Count;

                object[] columns = dataTable.Rows[0].ItemArray;

                ws.Cells["A1"].LoadFromDataTable(dataTable, true);



                for (int x = 1; x <= columns.Count(); x++)
                {
                    if (Config.Dates.Contains(ws.Cells[1, x].Value))
                    {
                        ws.Column(x).Style.Numberformat.Format = DateTimeFormatInfo.CurrentInfo.ShortDatePattern;
                    }
                }


                Log.LogMessage("Added data to Worksheet: " + strWorksheetName);

                // format header cells
                using (var range = ws.Cells[1, 1, 1, cols])
                {
                    Log.LogMessage("Formating Header Cells for Worksheet: " + strWorksheetName);
                    range.Style.Font.Bold        = true;
                    range.Style.Fill.PatternType = ExcelFillStyle.Solid;
                    range.Style.Fill.BackgroundColor.SetColor(Color.DarkBlue);
                    range.Style.Font.Color.SetColor(Color.White);
                }

                // Create autofilter for the range of cells
                ws.Cells[ws.Dimension?.Address].AutoFilter = true;
                // Autofit columns for all cells
                ws.Cells[ws.Dimension?.Address].AutoFitColumns();
                Log.LogMessage("Created " + strWorksheetName + " Worksheet");
            }
            catch (Exception ex)
            {
                Log.LogMessage("Error Creating " + strWorksheetName + ", Error: " + ex.Message);
            }
        }