示例#1
0
        internal void createExcelReport(string filePath, string carRegNo, string organizationName, List<DriveHistoryView> recordList)
        {
            try
            {
                IWorkbook workbook = new XSSFWorkbook();
                ISheet sheet = workbook.CreateSheet("Drive Record");

                int rowIndex = 0;
                IRow row = sheet.CreateRow(rowIndex);

                ICell cell = row.CreateCell(0);
                IFont font = workbook.CreateFont();
                font.Boldweight = (short)FontBoldWeight.Bold;
                cell.SetCellValue("Doctor Car Drive Operation Management System Report - Drive Records");
                cell.CellStyle.SetFont(font);
                CellManager.columnMerge(sheet, cell.CellStyle, rowIndex, 0, 4);

                //cell = row.CreateCell(5);
                //cell.SetCellValue(record.StartDate.ToString());
                //CellManager.columnMerge(sheet, rowIndex, 5, 6, false);

                rowIndex++;
                sheet.CreateRow(rowIndex);

                rowIndex++;
                row = sheet.CreateRow(rowIndex);

                cell = CellManager.CreateCell(workbook, row, 1, "Car Reg No", false);
                CellStyle.GrayBackground(workbook, cell, false);
                cell = CellManager.CreateCell(workbook, row, 2, carRegNo, false);
                CellManager.topBottomBorder(workbook, cell, row, 1);
                CellManager.columnMerge(sheet, rowIndex, 2, 3, true);

                rowIndex++;
                row = sheet.CreateRow(rowIndex);
                cell = CellManager.CreateCell(workbook, row, 1, "Organization", false);
                CellStyle.GrayBackground(workbook, cell, false);
                cell = CellManager.CreateCell(workbook, row, 2, organizationName.Trim(), false);
                CellManager.topBottomBorder(workbook, cell, row, 1);
                CellManager.columnMerge(sheet, rowIndex, 2, 3, true);

                rowIndex++;
                sheet.CreateRow(rowIndex);

                rowIndex++;
                row = sheet.CreateRow(rowIndex);
                cell = row.CreateCell(1);
                cell.SetCellValue("Drive Details");
                CellManager.topBottomBorder(workbook, cell, row, 11);
                CellManager.columnMerge(sheet, rowIndex, 1, 12, true);
                CellStyle.GrayBackground(workbook, cell, true);

                rowIndex++;
                row = sheet.CreateRow(rowIndex);
                cell = CellManager.CreateCell(workbook, row, 1, "#", true);
                cell = CellManager.CreateCell(workbook, row, 2, "Start Date time", true);
                cell = CellManager.CreateCell(workbook, row, 3, "End Date Time", true);
                cell = CellManager.CreateCell(workbook, row, 4, "Operation Time (h)", true);
                cell = CellManager.CreateCell(workbook, row, 5, "Start Odometer (km)", true);
                cell = CellManager.CreateCell(workbook, row, 6, "End Odometer (km)", true);
                cell = CellManager.CreateCell(workbook, row, 7, "Distance (km)", true);
                cell = CellManager.CreateCell(workbook, row, 8, "Velocity (km/h)", true);
                cell = CellManager.CreateCell(workbook, row, 9, "Drive From", true);
                cell = CellManager.CreateCell(workbook, row, 10, "Drive To", true);
                cell = CellManager.CreateCell(workbook, row, 11, "Driver", true);
                cell = CellManager.CreateCell(workbook, row, 12, "No. Patients", true);

                int recordNo = 1;
                foreach (DriveHistoryView record in recordList)
                {

                    rowIndex++;
                    row = sheet.CreateRow(rowIndex);
                    cell = CellManager.CreateCell(workbook, row, 1, recordNo, true);
                    cell = CellManager.CreateCell(workbook, row, 2, record.StartDate.ToString(), false);
                    cell = CellManager.CreateCell(workbook, row, 3, record.EndDate.ToString(), false);
                    TimeSpan duration = ((DateTime)record.EndDate - (DateTime)record.StartDate);
                    cell = CellManager.CreateCell(workbook, row, 4, duration.Hours, false);
                    cell = CellManager.CreateCell(workbook, row, 5, record.StartOdometer, false);
                    cell = CellManager.CreateCell(workbook, row, 6, record.EndOdometer, false);
                    cell = CellManager.CreateCell(workbook, row, 7, (record.EndOdometer - record.StartOdometer), false);
                    if (duration.Hours > 0)
                    {
                        cell = CellManager.CreateCell(workbook, row, 8, Math.Round((double)(record.EndOdometer - record.StartOdometer) / duration.Hours, 1), false);
                    }
                    else
                    {
                        cell = CellManager.CreateCell(workbook, row, 8, "", false);
                    }
                    cell = CellManager.CreateCell(workbook, row, 9, record.From.ToString(), false);
                    cell = CellManager.CreateCell(workbook, row, 10, record.To.ToString(), false);
                    cell = CellManager.CreateCell(workbook, row, 11, record.DriverName.ToString(), false);
                    cell = CellManager.CreateCell(workbook, row, 12, record.NumPatients, false);

                    recordNo++;

                    for (int i = 0; i < 15; i++)
                    {
                        sheet.AutoSizeColumn(i);
                    }
                }

                rowIndex++;
                row = sheet.CreateRow(rowIndex);
                if (recordNo - 1 > 0)
                {
                    cell = CellManager.CreateTotalCell(workbook, row, 12, "", false);
                    cell.SetCellFormula("SUM(M" + (rowIndex + 1 - recordNo + 1) + ":M" + rowIndex + ")");
                }

                sheet = workbook.CreateSheet("Fuel Record");
                rowIndex = 0;
                row = sheet.CreateRow(rowIndex);
                cell = row.CreateCell(0);
                cell.SetCellValue("Doctor Car Drive Operation Management System Report - Fuel Records");
                CellManager.columnMerge(sheet, cell.CellStyle, rowIndex, 0, 4);

                rowIndex++;
                rowIndex++;
                row = sheet.CreateRow(rowIndex);
                cell = CellManager.CreateCell(workbook, row, 1, "Fuel Expenses", true);
                CellManager.topBottomBorder(workbook, cell, row, 3);
                CellStyle.GrayBackground(workbook, cell, true);
                CellManager.columnMerge(sheet, rowIndex, 1, 4, true);

                rowIndex++;
                row = sheet.CreateRow(rowIndex);
                cell = CellManager.CreateCell(workbook, row, 1, "Date Time", true);
                cell = CellManager.CreateCell(workbook, row, 2, "Odometer (km)", true);
                cell = CellManager.CreateCell(workbook, row, 3, "Capacity (L)", true);
                cell = CellManager.CreateCell(workbook, row, 4, "Amount(SDG)", true);

                int numFuelRecords = 0;
                foreach (DriveHistoryView record in recordList)
                {

                    if (record.FuelTopup != null)
                    {
                        foreach (tbl_fuel fuel in record.FuelTopup)
                        {
                            rowIndex++;
                            row = sheet.CreateRow(rowIndex);
                            cell = CellManager.CreateCell(workbook, row, 1, fuel.ADD_TIME.ToString(), false);
                            cell = CellManager.CreateCell(workbook, row, 2, fuel.ODOMETER, false);
                            cell = CellManager.CreateCell(workbook, row, 3, fuel.VOLUME, false);
                            cell = CellManager.CreateCell(workbook, row, 4, fuel.AMOUNT, false);
                            numFuelRecords++;
                        }
                    }
                }
                rowIndex++;
                row = sheet.CreateRow(rowIndex);
                if (numFuelRecords > 0)
                {
                    cell = CellManager.CreateLabelCell(workbook, row, 2, "Total", false);
                    cell = CellManager.CreateTotalCell(workbook, row, 3, "", false);
                    cell.SetCellFormula("SUM(D" + (rowIndex + 1 - numFuelRecords) + ":D" + rowIndex + ")");
                    cell = CellManager.CreateTotalCell(workbook, row, 4, "", false);
                    cell.SetCellFormula("SUM(E" + (rowIndex + 1 - numFuelRecords) + ":E" + rowIndex + ")");
                }

                for (int i = 0; i < 15; i++)
                {
                    sheet.AutoSizeColumn(i);
                }

                sheet = workbook.CreateSheet("Other Expenses Record");
                rowIndex = 0;
                row = sheet.CreateRow(rowIndex);
                cell = row.CreateCell(0);
                cell.SetCellValue("Doctor Car Drive Operation Management System Report - Other Expenses");
                CellManager.columnMerge(sheet, cell.CellStyle, rowIndex, 0, 5);

                rowIndex++;
                rowIndex++;
                row = sheet.CreateRow(rowIndex);
                cell = CellManager.CreateCell(workbook, row, 1, "Other Expenses", true);
                CellManager.topBottomBorder(workbook, cell, row, 3);
                CellStyle.GrayBackground(workbook, cell, true);
                CellManager.columnMerge(sheet, rowIndex, 1, 4, true);

                rowIndex++;
                row = sheet.CreateRow(rowIndex);
                cell = CellManager.CreateCell(workbook, row, 1, "Date Time", true);
                cell = CellManager.CreateCell(workbook, row, 2, "Item", true);
                cell = CellManager.CreateCell(workbook, row, 3, "Amount(SDG)", true);
                cell = CellManager.CreateCell(workbook, row, 4, "Description", true);

                DrCarDriveService service = new DrCarDriveService();
                int numExpenses = 0;
                foreach (DriveHistoryView record in recordList)
                {
                    List<ExpenseView> expenses = service.getOtherExpensesByDriveId(record.DriveID);
                    if (expenses != null)
                    {
                        foreach (ExpenseView expense in expenses)
                        {
                            rowIndex++;
                            row = sheet.CreateRow(rowIndex);
                            cell = CellManager.CreateCell(workbook, row, 1, expense.AddDate.ToString(), false);
                            cell = CellManager.CreateCell(workbook, row, 2, expense.Item, false);
                            cell = CellManager.CreateCell(workbook, row, 3, expense.Amount, false);
                            cell = CellManager.CreateCell(workbook, row, 4, expense.Remark, false);
                            numExpenses++;
                        }
                    }
                }
                rowIndex++;
                row = sheet.CreateRow(rowIndex);
                if (numExpenses > 0)
                {
                    cell = CellManager.CreateLabelCell(workbook, row, 2, "Total", false);
                    cell = CellManager.CreateTotalCell(workbook, row, 3, "", false);
                    cell.SetCellFormula("SUM(D" + (rowIndex + 1 - numExpenses) + ":D" + rowIndex + ")");
                }

                for (int i = 0; i < 15; i++)
                {
                    sheet.AutoSizeColumn(i);
                }

                FileStream stream = File.Create(filePath);
                workbook.Write(stream);
                stream.Close();
            }
            catch (Exception ex)
            {
            }
        }
示例#2
0
        internal void createExcelReport(string filePath, string carRegNo, List<DriveHistoryView> recordList)
        {
            try
            {
                IWorkbook workbook = new XSSFWorkbook();

                foreach (DriveHistoryView record in recordList)
                {
                    ISheet sheet = workbook.CreateSheet(record.StartDate.Value.ToString("yyyy-MM-dd") + "_" + new Random().Next(100).ToString());

                    int rowIndex = 0;
                    IRow row = sheet.CreateRow(rowIndex);

                    ICell cell = row.CreateCell(0);
                    cell.SetCellValue("Doctor Car Drive Operation Management System Report");
                    CellManager.columnMerge(sheet, cell.CellStyle, rowIndex, 0, 4);

                    //cell = row.CreateCell(5);
                    //cell.SetCellValue(record.StartDate.ToString());
                    //CellManager.columnMerge(sheet, rowIndex, 5, 6, false);

                    rowIndex++;
                    sheet.CreateRow(rowIndex);

                    rowIndex++;
                    row = sheet.CreateRow(rowIndex);

                    cell = CellManager.CreateCell(workbook, row, 1, "Car Reg No", false);
                    CellStyle.GrayBackground(workbook, cell, false);
                    cell = CellManager.CreateCell(workbook, row, 2, carRegNo, false);

                    cell = CellManager.CreateCell(workbook, row, 4, "Start Odometer (km)", false);
                    CellStyle.GrayBackground(workbook, cell, false);
                    cell = CellManager.CreateCell(workbook, row, 5, record.StartOdometer, false);

                    cell = CellManager.CreateCell(workbook, row, 7, "Record Date", false);
                    CellStyle.GrayBackground(workbook, cell, false);
                    cell = CellManager.CreateCell(workbook, row, 8, record.InsertDateTime.ToString(), false);

                    rowIndex++;
                    row = sheet.CreateRow(rowIndex);
                    cell = CellManager.CreateCell(workbook, row, 1, "Operation Date", false);
                    CellStyle.GrayBackground(workbook, cell, false);
                    cell = CellManager.CreateCell(workbook, row, 2, record.StartDate.ToString(), false);

                    cell = CellManager.CreateCell(workbook, row, 4, "End Odometer (km)", false);
                    CellStyle.GrayBackground(workbook, cell, false);
                    cell = CellManager.CreateCell(workbook, row, 5, record.EndOdometer, false);

                    cell = CellManager.CreateCell(workbook, row, 7, "Drive From", false);
                    CellStyle.GrayBackground(workbook, cell, false);
                    cell = CellManager.CreateCell(workbook, row, 8, record.From, false);

                    rowIndex++;
                    row = sheet.CreateRow(rowIndex);

                    cell = CellManager.CreateCell(workbook, row, 1, "Driver", false);
                    CellStyle.GrayBackground(workbook, cell, false);
                    cell = CellManager.CreateCell(workbook, row, 2, record.DriverName, false);

                    cell = CellManager.CreateCell(workbook, row, 4, "Distance (km)", false);
                    CellStyle.GrayBackground(workbook, cell, false);
                    string distance = FindDifference.calculateDistance(record.StartOdometer, record.EndOdometer);
                    try
                    {
                        double dist = Convert.ToDouble(distance);
                        cell = CellManager.CreateCell(workbook, row, 5, dist, false);
                    }
                    catch
                    {
                        cell = CellManager.CreateCell(workbook, row, 5, distance, false);
                    }

                    cell = CellManager.CreateCell(workbook, row, 7, "Drive To", false);
                    CellStyle.GrayBackground(workbook, cell, false);
                    cell = CellManager.CreateCell(workbook, row, 8, record.To, false);

                    rowIndex++;
                    sheet.CreateRow(rowIndex);

                    rowIndex++;
                    row = sheet.CreateRow(rowIndex);
                    cell = row.CreateCell(1);
                    cell.SetCellValue("Visit Details");
                    CellManager.topBottomBorder(workbook, cell, row, 10);
                    CellManager.columnMerge(sheet, rowIndex, 1, 11, true);
                    CellStyle.GrayBackground(workbook, cell, true);

                    cell = row.CreateCell(12);
                    cell.SetCellValue("Medicine");
                    CellManager.topBottomBorder(workbook, cell, row, 2);
                    CellManager.columnMerge(sheet, rowIndex, 12, 14, true);
                    CellStyle.GrayBackground(workbook, cell, true);

                    rowIndex++;
                    row = sheet.CreateRow(rowIndex);
                    cell = CellManager.CreateCell(workbook, row, 1, "Place", true);
                    cell = CellManager.CreateCell(workbook, row, 2, "Arrival Date time", true);
                    cell = CellManager.CreateCell(workbook, row, 3, "Departure Date Time", true);
                    cell = CellManager.CreateCell(workbook, row, 4, "Odometer (km)", true);
                    cell = CellManager.CreateCell(workbook, row, 5, "No. Patients", true);
                    cell = CellManager.CreateCell(workbook, row, 6, "No. Doctors", true);
                    cell = CellManager.CreateCell(workbook, row, 7, "No. Nurses", true);
                    cell = CellManager.CreateCell(workbook, row, 8, "Activity", true);
                    CellManager.topBottomBorder(workbook, cell, row, 3);
                    CellManager.columnMerge(sheet, rowIndex, 8, 11, true);

                    cell = CellManager.CreateCell(workbook, row, 12, "Item", true);
                    cell = CellManager.CreateCell(workbook, row, 13, "Dosage", true);
                    cell = CellManager.CreateCell(workbook, row, 14, "Unit", true);

                    DrCarDriveService service = new DrCarDriveService();
                    if (record.Places != null)
                    {
                        int numPlaces = 0;
                        rowIndex++;
                        row = sheet.CreateRow(rowIndex);
                        foreach (tbl_places place in record.Places)
                        {
                            cell = CellManager.CreateCell(workbook, row, 1, place.VILLAGE_NAME, false);
                            cell = CellManager.CreateCell(workbook, row, 2, place.ARRIVAL_DATE.ToString(), false);
                            cell = CellManager.CreateCell(workbook, row, 3, place.DEPARTURE_DATE.ToString(), false);
                            cell = CellManager.CreateCell(workbook, row, 4, place.ARRIVAL_ODOMETER, false);
                            cell = CellManager.CreateCell(workbook, row, 5, place.NUMBER_PATIENT, false);
                            cell = CellManager.CreateCell(workbook, row, 6, place.NUMBER_DOCTORS, false);
                            cell = CellManager.CreateCell(workbook, row, 7, place.NUMBER_PARAMEDICS, false);
                            cell = CellManager.CreateCell(workbook, row, 8, place.REMARK, false);

                            CellManager.topBottomBorder(workbook, cell, row, 3);
                            CellManager.columnMerge(sheet, rowIndex, 8, 11, false);

                            List<tbl_issue_medicine> medicineList = service.getIssueMedicineByPlaceId(place.ID);
                            if (medicineList.Count > 0)
                            {
                                int medCount = 0;
                                foreach (tbl_issue_medicine medicine in medicineList)
                                {
                                    tbl_drive_medicine med = service.getMedicineById(medicine.FKY_MEDICINE);
                                    cell = CellManager.CreateCell(workbook, row, 12, med.NAME, false);
                                    cell = CellManager.CreateCell(workbook, row, 13, medicine.DOSAGE, false);
                                    cell = CellManager.CreateCell(workbook, row, 14, medicine.UNIT, false);
                                    if (medCount > 0)
                                    {
                                        cell = CellManager.SetCellLeftBorder(workbook, row, 1);
                                    }
                                    medCount++;
                                    rowIndex++;
                                    row = sheet.CreateRow(rowIndex);
                                }
                                cell = CellManager.SetCellLeftBorder(workbook, row, 1);
                                cell = CellManager.SetCellRightBorder(workbook, row, 14);

                            }
                            else
                            {
                                cell = CellManager.CreateCell(workbook, row, 12, "", false);
                                cell = CellManager.CreateCell(workbook, row, 13, "", false);
                                cell = CellManager.CreateCell(workbook, row, 14, "", false);
                            }

                            numPlaces++;
                            rowIndex++;
                            row = sheet.CreateRow(rowIndex);
                            //CellManager.SetCellTopBorder(workbook, row, 12, 14, new List<int> { });
                        }

                        if (numPlaces > 0)
                        {
                            cell = CellManager.CreateLabelCell(workbook, row, 4, "Total", false);
                            cell = CellManager.CreateTotalCell(workbook, row, 5, "", false);
                            cell.SetCellFormula("SUM(F" + "9" + ":F" + rowIndex + ")");
                            CellManager.SetCellTopBorder(workbook, row, 1, 11, new List<int> { 4, 5 });
                        }

                    }

                    rowIndex++;
                    row = sheet.CreateRow(rowIndex);

                    rowIndex++;
                    row = sheet.CreateRow(rowIndex);

                    rowIndex++;
                    row = sheet.CreateRow(rowIndex);
                    cell = CellManager.CreateCell(workbook, row, 1, "Fuel Expenses", true);
                    CellManager.topBottomBorder(workbook, cell, row, 2);
                    CellStyle.GrayBackground(workbook, cell, true);
                    CellManager.columnMerge(sheet, rowIndex, 1, 3, true);

                    rowIndex++;
                    row = sheet.CreateRow(rowIndex);
                    cell = CellManager.CreateCell(workbook, row, 1, "Odometer", true);
                    cell = CellManager.CreateCell(workbook, row, 2, "Capacity (L)", true);
                    cell = CellManager.CreateCell(workbook, row, 3, "Amount(SDG)", true);

                    if (record.FuelTopup != null)
                    {
                        int numFuelRecords = 0;
                        foreach (tbl_fuel fuel in record.FuelTopup)
                        {
                            rowIndex++;
                            row = sheet.CreateRow(rowIndex);
                            cell = CellManager.CreateCell(workbook, row, 1, fuel.ODOMETER, false);
                            cell = CellManager.CreateCell(workbook, row, 2, fuel.VOLUME, false);
                            cell = CellManager.CreateCell(workbook, row, 3, fuel.AMOUNT, false);
                            numFuelRecords++;
                        }

                        rowIndex++;
                        row = sheet.CreateRow(rowIndex);
                        if (numFuelRecords > 0)
                        {
                            cell = CellManager.CreateLabelCell(workbook, row, 1, "Total", false);
                            cell = CellManager.CreateTotalCell(workbook, row, 2, "", false);
                            cell.SetCellFormula("SUM(C" + (rowIndex + 1 - numFuelRecords) + ":C" + rowIndex + ")");
                        }
                    }

                    rowIndex++;
                    row = sheet.CreateRow(rowIndex);

                    rowIndex++;
                    row = sheet.CreateRow(rowIndex);
                    cell = CellManager.CreateCell(workbook, row, 1, "Other Expenses", true);
                    CellManager.topBottomBorder(workbook, cell, row, 2);
                    CellStyle.GrayBackground(workbook, cell, true);
                    CellManager.columnMerge(sheet, rowIndex, 1, 3, true);

                    rowIndex++;
                    row = sheet.CreateRow(rowIndex);
                    cell = CellManager.CreateCell(workbook, row, 1, "Item", true);
                    cell = CellManager.CreateCell(workbook, row, 2, "Amount(SDG)", true);
                    cell = CellManager.CreateCell(workbook, row, 3, "Description", true);

                    List<ExpenseView> expenses = service.getOtherExpensesByDriveId(record.DriveID);
                    if (expenses != null)
                    {
                        int numExpenses = 0;
                        foreach (ExpenseView expense in expenses)
                        {
                            rowIndex++;
                            row = sheet.CreateRow(rowIndex);
                            cell = CellManager.CreateCell(workbook, row, 1, expense.Item, false);
                            cell = CellManager.CreateCell(workbook, row, 2, expense.Amount, false);
                            cell = CellManager.CreateCell(workbook, row, 3, expense.Remark, false);
                            numExpenses++;
                        }

                        rowIndex++;
                        row = sheet.CreateRow(rowIndex);
                        if (numExpenses > 0)
                        {
                            cell = CellManager.CreateLabelCell(workbook, row, 1, "Total", false);
                            cell = CellManager.CreateTotalCell(workbook, row, 2, "", false);
                            cell.SetCellFormula("SUM(C" + (rowIndex + 1 - numExpenses) + ":C" + rowIndex + ")");
                        }

                    }

                    for (int i = 0; i < 15; i++)
                    {
                        sheet.AutoSizeColumn(i);
                    }
                }

                FileStream stream = File.Create(filePath);
                workbook.Write(stream);
                stream.Close();
            }
            catch (Exception ex)
            {
            }
        }