Exemple #1
0
        /// <summary>
        /// Create Excel document for exported data
        /// </summary>
        /// <param name="file">File to create</param>
        /// <param name="absences">Collection of absence entries to export</param>
        /// <param name="workHours">Collection of work hours entries to export</param>
        /// <param name="days">Collection of day entries to export</param>
        /// <param name="language">ExportTask.Language = DefaultLanguage (en-US)</param>
        private void ExportExcelDocument(
            string file,
            EntriesToPayroll <Absence> absences,
            EntriesToPayroll <Timesheet> workHours,
            string language)
        {
            try
            {
                OfficeOpenXml.ExcelPackage excelPackage = new ExcelPackage(new FileInfo(file));

                string workSheetName;
                string pivotRangeName;
                if (language.ToLower() == "fi")
                {
                    workSheetName  = "Tunnit";
                    pivotRangeName = "tuntiPivotAlue";
                }
                else
                {
                    workSheetName  = "Hours";
                    pivotRangeName = "hoursPivotRange";
                }
                ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add(workSheetName);
                //need to start at row 2, since row 1 is header info
                int startingRow = 2;
                startingRow = absences.AppendToExcelWorksheet <Absence>(worksheet, startingRow);
                startingRow = workHours.AppendToExcelWorksheet <Timesheet>(worksheet, startingRow, false); // 3rd parameter is for robust way not to write header information again


                // Create pivot table for timesheet and absence entries
                if (language.ToLower() == "fi")
                {
                    PivotTable = new ExportPivotTable(
                        new string[] { "Nimi" }, /* collapsible rows */
                        new string[] { "Tunnit" });
                }
                else
                {
                    PivotTable = new ExportPivotTable(
                        new string[] { "Name" }, /* collapsible rows */
                        new string[] { "Hours" });
                }
                PivotTable.CreatePivotTable(excelPackage, worksheet, pivotRangeName);
                excelPackage.Save();
            }
            catch (Exception ex)
            {
                UpdateExportStatus(string.Format("Critical exception when creating file Errorstack {0}", ex));
                throw;
            }
        }