Пример #1
0
        protected ushort GenerateHierarchyTotal(NPOI.HSSF.UserModel.HSSFSheet workSheet, ushort rowPos, NPOI.HSSF.UserModel.HSSFCellStyle style, ushort groupRowCount)
        {
            if (groupRowCount <= 0)
            {
                return(rowPos);
            }

            //workSheet.Cells.Add(rowPos, colPos, currentHierarchyGroup);
            ushort colPos; Convert.ToUInt16(summaryStart - Convert.ToUInt16(1));

            NPOI.HSSF.UserModel.HSSFRow  row = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow(rowPos);
            NPOI.HSSF.UserModel.HSSFCell cell;

            for (colPos = 0; colPos < summaryStart - Convert.ToUInt16(1); colPos++)
            {
                cell           = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
                cell.CellStyle = style;
            }

            cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
            cell.SetCellValue("Total:");
            cell.CellStyle = style;
            colPos++;

            for (; colPos <= reportEndCol; colPos++)
            {
                cell             = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
                cell.CellFormula = "SUM(" + ToCellString(rowPos - groupRowCount, colPos) + ":" + ToCellString(rowPos - Convert.ToUInt16(1), colPos) + ")";
                cell.CellStyle   = style;
            }
            rowPos++;

            return(rowPos);
        }
Пример #2
0
        protected void WriteCellText(NPOI.HSSF.UserModel.HSSFRow _row, int _colIndex, string _value, NPOI.HSSF.UserModel.HSSFCellStyle _cellStyle)
        {
            NPOI.HSSF.UserModel.HSSFCell _cell = (NPOI.HSSF.UserModel.HSSFCell)_row.CreateCell(_colIndex);

            _cell.CellStyle = _cellStyle;
            _cell.SetCellValue(_value);
        }
Пример #3
0
        protected ushort GenerateHeader(NPOI.HSSF.UserModel.HSSFSheet workSheet, DateTime PeriodFrom, DateTime PeriodTo, ushort RowPos, NPOI.HSSF.UserModel.HSSFCellStyle ReportHeaderStyle, NPOI.HSSF.UserModel.HSSFCellStyle ReportSubHeaderStyle)
        {
            NPOI.HSSF.UserModel.HSSFCell cell = (NPOI.HSSF.UserModel.HSSFCell)workSheet.CreateRow((int)RowPos).CreateCell(0);

            //workSheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(cell.RowIndex, cell.ColumnIndex, cell.RowIndex, cell.ColumnIndex+5));
            cell.SetCellValue("Payroll Allocation Report - Detail");
            cell.CellStyle = ReportHeaderStyle;

            RowPos++;
            NPOI.HSSF.UserModel.HSSFRow row = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow((int)RowPos);
            cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(0);
            cell.SetCellValue("From");
            cell.CellStyle = ReportSubHeaderStyle;
            cell           = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(1);
            cell.SetCellValue(PeriodFrom.ToString("yyyy-MM-dd"));
            cell.CellStyle = ReportSubHeaderStyle;
            cell           = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(2);
            cell.SetCellValue("To");
            cell.CellStyle = ReportSubHeaderStyle;
            cell           = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(3);
            cell.SetCellValue(PeriodTo.ToString("yyyy-MM-dd"));
            cell.CellStyle = ReportSubHeaderStyle;

            RowPos += 2;

            return(RowPos);
        }
Пример #4
0
        //private ushort GenerateHeader(org.in2bits.MyXls.XlsDocument xlsDoc, org.in2bits.MyXls.Worksheet workSheet, DateTime PeriodFrom, DateTime PeriodTo, ushort RowPos)
        protected ushort GenerateHeader(NPOI.HSSF.UserModel.HSSFSheet workSheet, DateTime PeriodFrom, DateTime PeriodTo, ushort RowPos, NPOI.HSSF.UserModel.HSSFCellStyle ReportHeaderStyle, NPOI.HSSF.UserModel.HSSFCellStyle ReportSubHeaderStyle)
        {
            //RowPos++;
            //workSheet.Cells.Add((int)RowPos, 1, "Payment Allocation Report");
            //workSheet.Rows[RowPos].GetCell(1).Font.Bold = true;
            NPOI.HSSF.UserModel.HSSFCell cell = (NPOI.HSSF.UserModel.HSSFCell)workSheet.CreateRow((int)RowPos).CreateCell(0);
            cell.SetCellValue("Payment Allocation Report");
            cell.CellStyle = ReportHeaderStyle;

            RowPos++;
            //workSheet.Cells.Add((int)RowPos, 1, "From");
            //workSheet.Rows[RowPos].GetCell(1).Font.Bold = true;
            //workSheet.Cells.Add((int)RowPos, 2, PeriodFrom.ToString("yyyy-MM-dd"));
            //workSheet.Rows[RowPos].GetCell(2).Font.Bold = true;
            //workSheet.Cells.Add((int)RowPos, 3, "To");
            //workSheet.Rows[RowPos].GetCell(3).Font.Bold = true;
            //workSheet.Cells.Add((int)RowPos, 4, PeriodTo.ToString("yyyy-MM-dd"));
            //workSheet.Rows[RowPos].GetCell(4).Font.Bold = true;
            NPOI.HSSF.UserModel.HSSFRow row = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow((int)RowPos);
            cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(0);
            cell.SetCellValue("From");
            cell.CellStyle = ReportSubHeaderStyle;
            cell           = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(1);
            cell.SetCellValue(PeriodFrom.ToString("yyyy-MM-dd"));
            cell.CellStyle = ReportSubHeaderStyle;
            cell           = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(2);
            cell.SetCellValue("To");
            cell.CellStyle = ReportSubHeaderStyle;
            cell           = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(3);
            cell.SetCellValue(PeriodTo.ToString("yyyy-MM-dd"));
            cell.CellStyle = ReportSubHeaderStyle;

            return(RowPos);
        }
Пример #5
0
 //ExcelHelper excle = new ExcelHelper();
 //Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", DateTime.Now.ToString("yyyyMMddHHmmssfff")));
 //Response.BinaryWrite(excle.ExportXLS());
 public static DataTable Excel2DataTable(string filePath)
 {
     NPOI.SS.UserModel.ISheet sheet = null;
     #region//初始化信息
     try
     {
         string fileExt = Path.GetExtension(filePath).ToLower();
         using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
         {
             if (fileExt == ".xls")
             {
                 sheet = new NPOI.HSSF.UserModel.HSSFWorkbook(file).GetSheetAt(0);
             }
             else if (fileExt == ".xlsx")
             {
                 sheet = new NPOI.XSSF.UserModel.XSSFWorkbook(file).GetSheetAt(0);
             }
             else
             {
                 sheet = null;
             }
         }
     }
     catch (Exception e)
     {
         throw e;
     }
     #endregion
     if (sheet == null)
     {
         return(null);
     }
     System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
     DataTable dt = new DataTable();
     for (int j = 0; j < (sheet.GetRow(0).LastCellNum); j++)
     {
         dt.Columns.Add(Convert.ToChar(((int)'A') + j).ToString());
     }
     while (rows.MoveNext())
     {
         NPOI.HSSF.UserModel.HSSFRow row = (NPOI.HSSF.UserModel.HSSFRow)rows.Current;
         DataRow dr = dt.NewRow();
         for (int i = 0; i < row.LastCellNum; i++)
         {
             NPOI.SS.UserModel.ICell cell = row.GetCell(i);
             if (cell == null)
             {
                 dr[i] = null;
             }
             else
             {
                 dr[i] = cell.ToString();
             }
         }
         dt.Rows.Add(dr);
     }
     return(dt);
 }
Пример #6
0
        public override FileInfo GenerateBankFile()
        {
            NPOI.HSSF.UserModel.HSSFWorkbook workBook  = new NPOI.HSSF.UserModel.HSSFWorkbook(System.IO.File.OpenRead(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ICBCBankFile.xls")));
            NPOI.HSSF.UserModel.HSSFSheet    workSheet = (NPOI.HSSF.UserModel.HSSFSheet)workBook.GetSheetAt(0);

            int rowCount = 10;

            foreach (GenericBankFileDetail bankFileDetail in BankFileDetails)
            {
                NPOI.HSSF.UserModel.HSSFRow row = (NPOI.HSSF.UserModel.HSSFRow)workSheet.GetRow(rowCount);
                if (row == null)
                {
                    row = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow(rowCount);
                }

                NPOI.HSSF.UserModel.HSSFCell cell = (NPOI.HSSF.UserModel.HSSFCell)row.GetCell(0);
                if (cell == null)
                {
                    cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(0);
                }
                cell.SetCellValue(bankFileDetail.EmpNo);

                cell = (NPOI.HSSF.UserModel.HSSFCell)row.GetCell(1);
                if (cell == null)
                {
                    cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(1);
                }
                cell.SetCellValue(bankFileDetail.EmpBankAccountHolderName);

                cell = (NPOI.HSSF.UserModel.HSSFCell)row.GetCell(2);
                if (cell == null)
                {
                    cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(2);
                }
                cell.SetCellValue(bankFileDetail.BankCode + bankFileDetail.BranchCode + bankFileDetail.AccountNo);

                cell = (NPOI.HSSF.UserModel.HSSFCell)row.GetCell(3);
                if (cell == null)
                {
                    cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(3);
                }
                cell.SetCellValue(bankFileDetail.Amount);

                rowCount++;
            }
            string exportFileName = System.IO.Path.GetTempFileName();

            System.IO.File.Delete(exportFileName);
            exportFileName += ".xls";

            System.IO.FileStream file = new System.IO.FileStream(exportFileName, System.IO.FileMode.Create);
            workBook.Write(file);
            file.Close();

            return(new FileInfo(exportFileName));
        }
Пример #7
0
        protected ushort GenerateCompanyTotal(NPOI.HSSF.UserModel.HSSFSheet workSheet, DataTable paymentTable, int RecordCount, double companyEmployerTotal, ushort rowPos, NPOI.HSSF.UserModel.HSSFCellStyle style)
        {
            //org.in2bits.MyXls.XF xf = xlsDoc.NewXF();
            //xf.TopLineStyle = (ushort)1;

            rowPos++;
            ushort colPos = 0;

            //workSheet.Cells.Add(rowPos, colPos, "Total", xf);
            NPOI.HSSF.UserModel.HSSFRow  row  = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow(rowPos);
            NPOI.HSSF.UserModel.HSSFCell cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
            cell.SetCellValue("Total");
            cell.CellStyle = style;

            //**** Start 2013/11/22, Ricky So, adding Employee No. to excel output
            // Employee NO. has been added, and a empty cell is needed in grand total level
            if (intHierarchyLevelID == STAFF_LEVEL_ID)
            {
                colPos++;
                cell           = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
                cell.CellStyle = style;
            }
            //**** End 2013/11/22, Ricky So, adding Employee No. to excel output



            foreach (DataColumn column in paymentTable.Columns)
            {
                if (column.ColumnName.Equals("EmpPayrollID"))
                {
                    continue;
                }
                colPos++;
                //workSheet.Cells.Add(rowPos, colPos, Math.Round((double)companyTotalHashTable[column.ColumnName], 2), xf);
                //workSheet.Rows[rowPos].CellAtCol(colPos).Format = "#,##0.00;(#,##0.00)";
                cell             = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
                cell.CellFormula = "SUM(" + ToCellString(rowPos - RecordCount, colPos) + ":" + ToCellString(rowPos - 1, colPos) + ")";
                cell.CellStyle   = style;
            }
            colPos++;
            //workSheet.Cells.Add(rowPos, colPos, Math.Round(companyNetPayment, 2), xf);
            //workSheet.Rows[rowPos].CellAtCol(colPos).Format = "#,##0.00;(#,##0.00)";
            cell             = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
            cell.CellFormula = "SUM(" + ToCellString(rowPos - RecordCount, colPos) + ":" + ToCellString(rowPos - 1, colPos) + ")";
            cell.CellStyle   = style;

            colPos++;
            //workSheet.Cells.Add(rowPos, colPos, Math.Round(companyEmployerTotal, 2), xf);
            //workSheet.Rows[rowPos].CellAtCol(colPos).Format = "#,##0.00;(#,##0.00)";
            cell             = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
            cell.CellFormula = "SUM(" + ToCellString(rowPos - RecordCount, colPos) + ":" + ToCellString(rowPos - 1, colPos) + ")";
            cell.CellStyle   = style;

            return(rowPos);
        }
Пример #8
0
        //    public ushort GenerateHierarchyTotal(org.in2bits.MyXls.XlsDocument xlsDoc, org.in2bits.MyXls.Worksheet workSheet, DataTable paymentTable, string currentHierarchyGroup, Hashtable paymentHashTable, double netPayment, double employerContribution, ushort rowPos)
        protected ushort GenerateHierarchyTotal(NPOI.HSSF.UserModel.HSSFSheet workSheet, DataTable paymentTable, string currentHierarchyGroup, string currentEmployeeNo, Hashtable paymentHashTable, double netPayment, double employerContribution, ushort rowPos, NPOI.HSSF.UserModel.HSSFCellStyle style)
        {
            rowPos++;
            ushort colPos = 0;

            //workSheet.Cells.Add(rowPos, colPos, currentHierarchyGroup);


            NPOI.HSSF.UserModel.HSSFRow  row = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow(rowPos);
            NPOI.HSSF.UserModel.HSSFCell cell;
            //**** Start 2013/11/22, Ricky So, adding Employee No. to excel output
            // write employee Number
            if (intHierarchyLevelID == STAFF_LEVEL_ID)
            {
                cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
                cell.SetCellValue(currentEmployeeNo);
                cell.CellStyle = style;
                colPos++;
            }
            //**** End 2013/11/22, Ricky So, adding Employee No. to excel output

            // write grouping value
            cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
            cell.SetCellValue(currentHierarchyGroup);
            cell.CellStyle = style;

            foreach (DataColumn column in paymentTable.Columns)
            {
                if (column.ColumnName.Equals("EmpPayrollID"))
                {
                    continue;
                }
                colPos++;
                //workSheet.Cells.Add(rowPos, colPos, Math.Round((double)paymentHashTable[column.ColumnName], 2));
                //workSheet.Rows[rowPos].CellAtCol(colPos).Format = "#,##0.00;(#,##0.00)";
                cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
                cell.SetCellValue(Math.Round((double)paymentHashTable[column.ColumnName], 2));
                cell.CellStyle = style;
            }
            colPos++;
            //workSheet.Cells.Add(rowPos, colPos, Math.Round(netPayment, 2));
            //workSheet.Rows[rowPos].CellAtCol(colPos).Format = "#,##0.00;(#,##0.00)";
            cell             = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
            cell.CellFormula = "SUM(" + ToCellString(rowPos, 1) + ":" + ToCellString(rowPos, colPos - 1) + ")";
            cell.CellStyle   = style;

            colPos++;
            //workSheet.Cells.Add(rowPos, colPos, Math.Round(employerContribution, 2));
            //workSheet.Rows[rowPos].CellAtCol(colPos).Format = "#,##0.00;(#,##0.00)";
            cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
            cell.SetCellValue(Math.Round(employerContribution, 2));
            cell.CellStyle = style;

            return(rowPos);
        }
Пример #9
0
        protected ushort GenerateCompanyHeader(NPOI.HSSF.UserModel.HSSFSheet workSheet, System.Data.DataSet dataSet,
                                               string CompanyHeader, ushort RowPos,
                                               NPOI.HSSF.UserModel.HSSFCellStyle GroupHeaderStyle)
        {
            NPOI.HSSF.UserModel.HSSFRow  row  = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow((int)RowPos);
            NPOI.HSSF.UserModel.HSSFCell cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(0);
            cell.SetCellValue("Company");
            cell.CellStyle = GroupHeaderStyle;
            cell           = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(1);
            cell.SetCellValue(CompanyHeader);
            cell.CellStyle = GroupHeaderStyle;

            RowPos++;
            return(RowPos);
        }
Пример #10
0
        private void button13_Click(object sender, EventArgs e)
        {
            //清空报表
            report1.ClearReport();

            //设置报表为非只读
            report1.ReadOnly = false;

            //报表停止公式计算,这样速度快点
            report1.CalcFormula(false);
            //报表停止绘制
            report1.AllowDraw(false);

            string fileName = Application.StartupPath + "\\Test.xls";

            NPOI.HSSF.UserModel.HSSFWorkbook hssfworkbook;

            try
            {
                this.Cursor = Cursors.WaitCursor;

                using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read))
                {
                    hssfworkbook = new NPOI.HSSF.UserModel.HSSFWorkbook(fileStream);
                    NPOI.HSSF.UserModel.HSSFSheet sheet = hssfworkbook.GetSheetAt(0);

                    if (sheet.LastRowNum == 0)
                    {
                        this.Cursor = Cursors.Arrow;
                        return;
                    }
                    else
                    {
                        //产生列
                        NPOI.HSSF.UserModel.HSSFRow row = sheet.GetRow(0);
                        //report1.AddColumn(row.Cells.Count);
                        report1.AddColumn(row.LastCellNum);
                    }

                    int rowIndex = 0;
                    System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
                    while (rows.MoveNext())
                    {
                        //增加行
                        rowIndex = report1.AddRow(Gscr.Band.Detail);

                        NPOI.HSSF.UserModel.HSSFRow row = (NPOI.HSSF.UserModel.HSSFRow)rows.Current;
                        for (int i = 0; i < row.LastCellNum; i++)
                        {
                            Gscr.Cell cellRpt = report1[rowIndex, i];

                            NPOI.HSSF.UserModel.HSSFCell cell = row.GetCell(i);
                            if (cell == null)
                            {
                                cellRpt.Value = null;
                            }
                            else
                            {
                                switch (cell.CellType)
                                {
                                case NPOI.HSSF.UserModel.HSSFCellType.BLANK:
                                    cellRpt.Value = null;
                                    break;

                                case NPOI.HSSF.UserModel.HSSFCellType.BOOLEAN:
                                    cellRpt.Value = cell.BooleanCellValue;
                                    break;

                                case NPOI.HSSF.UserModel.HSSFCellType.NUMERIC:
                                    cellRpt.Value = cell.ToString();
                                    break;

                                case NPOI.HSSF.UserModel.HSSFCellType.STRING:
                                    cellRpt.Value = cell.StringCellValue;
                                    break;

                                case NPOI.HSSF.UserModel.HSSFCellType.ERROR:
                                    cellRpt.Value = cell.ErrorCellValue;
                                    break;

                                default:
                                    break;
                                }
                            }
                        }
                    }
                }

                //报表恢复公式计算
                report1.CalcFormula(true);
                //报表恢复绘制
                report1.AllowDraw(true);
                this.Cursor = Cursors.Arrow;

                MessageBox.Show("成功读取Excel文件【" + fileName + " 】。",
                                "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception err)
            {
                report1.CalcFormula(true);
                report1.AllowDraw(true);

                this.Cursor = Cursors.Arrow;
                MessageBox.Show("读取Excel文件失败。" + err.Message,
                                "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }
Пример #11
0
        //private ExcelLibrary.SpreadSheet.Worksheet CreateWorkSheet(DataTable dataTable)
        private NPOI.HSSF.UserModel.HSSFSheet CreateWorkSheet(DataTable dataTable)
        {
            if (workbook != null)
            {
                NPOI.HSSF.UserModel.HSSFDataFormat format = (NPOI.HSSF.UserModel.HSSFDataFormat)workbook.CreateDataFormat();

                NPOI.HSSF.UserModel.HSSFCellStyle dateCellStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
                dateCellStyle.DataFormat = format.GetFormat("yyyy-MM-dd");

                NPOI.HSSF.UserModel.HSSFCellStyle numericCellStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
                numericCellStyle.DataFormat = format.GetFormat("0.00##");

                NPOI.HSSF.UserModel.HSSFSheet worksheet = (NPOI.HSSF.UserModel.HSSFSheet)workbook.CreateSheet(dataTable.TableName.Replace("$", ""));
                //ExcelLibrary.SpreadSheet.Row headerRow = new ExcelLibrary.SpreadSheet.Row();
                NPOI.HSSF.UserModel.HSSFRow headerRow = (NPOI.HSSF.UserModel.HSSFRow)worksheet.CreateRow(0);
                int columnCount = 0;
                foreach (DataColumn headercolumn in dataTable.Columns)
                {
                    headercolumn.ColumnName = headercolumn.ColumnName.Trim();

                    NPOI.HSSF.UserModel.HSSFCell cell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(columnCount); //new ExcelLibrary.SpreadSheet.Cell(headercolumn.ColumnName, new ExcelLibrary.SpreadSheet.CellFormat(ExcelLibrary.SpreadSheet.CellFormatType.Text, string.Empty));
                    cell.SetCellValue(headercolumn.ColumnName);

                    //headerRow.SetCell(columnCount,cell);
                    //worksheet.Cells[0, columnCount] = cell;//new ExcelLibrary.SpreadSheet.Cell(column.ColumnName, new ExcelLibrary.SpreadSheet.CellFormat(ExcelLibrary.SpreadSheet.CellFormatType.Text, string.Empty));
                    columnCount++;
                }
                //worksheet.Cells.Rows.Add(0, headerRow);

                int rowCount = 0;



                //NPOI.HSSF.UserModel.HSSFCellStyle numericCellStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
                //numericCellStyle.DataFormat = NPOI.HSSF.UserModel.HSSFDataFormat.GetBuiltinFormat("0.00"); ;

                //NPOI.HSSF.UserModel.HSSFCellStyle integerCellStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
                //integerCellStyle.DataFormat = NPOI.HSSF.UserModel.HSSFDataFormat.GetBuiltinFormat("0"); ;

                foreach (DataRow row in dataTable.Rows)
                {
                    rowCount++;
                    columnCount = 0;

                    //                    ExcelLibrary.SpreadSheet.Row detailRow = new ExcelLibrary.SpreadSheet.Row();

                    NPOI.HSSF.UserModel.HSSFRow detailRow = (NPOI.HSSF.UserModel.HSSFRow)worksheet.CreateRow(rowCount);

                    foreach (DataColumn column in dataTable.Columns)
                    {
                        //ExcelLibrary.SpreadSheet.Cell cell =new ExcelLibrary.SpreadSheet.Cell(string.Empty, new ExcelLibrary.SpreadSheet.CellFormat(ExcelLibrary.SpreadSheet.CellFormatType.Text, string.Empty));
                        NPOI.HSSF.UserModel.HSSFCell cell = (NPOI.HSSF.UserModel.HSSFCell)detailRow.CreateCell(columnCount);

                        if (column.DataType.Equals(typeof(string)))
                        {
                            //cell.Format = new ExcelLibrary.SpreadSheet.CellFormat(ExcelLibrary.SpreadSheet.CellFormatType.Text, string.Empty);
                            //cell.Value = (row[column] == System.DBNull.Value ? string.Empty : row[column].ToString());
                            cell.SetCellValue(row[column] == System.DBNull.Value ? string.Empty : row[column].ToString());
                        }
                        else if (column.DataType.Equals(typeof(double)) || column.DataType.Equals(typeof(float)))
                        {
                            //cell.Format = new ExcelLibrary.SpreadSheet.CellFormat(ExcelLibrary.SpreadSheet.CellFormatType.Number, "0.00");
                            //cell.Value = (row[column] == System.DBNull.Value ? string.Empty : row[column]);
                            if (row[column] != System.DBNull.Value)
                            {
                                double value = Convert.ToDouble(row[column].ToString());
                                if (value.Equals(double.NaN))
                                {
                                    cell.SetCellValue(string.Empty);
                                }
                                else
                                {
                                    cell.SetCellValue(value);
                                }
                            }
                            cell.CellStyle = numericCellStyle;
                        }
                        else if (column.DataType.Equals(typeof(int)))
                        {
                            //cell.Format = new ExcelLibrary.SpreadSheet.CellFormat(ExcelLibrary.SpreadSheet.CellFormatType.Number, "0.00");
                            //cell.Value = (row[column] == System.DBNull.Value ? string.Empty : row[column]);
                            if (row[column] != System.DBNull.Value)
                            {
                                cell.SetCellValue(Convert.ToDouble(row[column].ToString()));
                            }
                            //cell.CellStyle = integerCellStyle;
                        }
                        else if (column.DataType.Equals(typeof(DateTime)))
                        {
                            //cell.Format = new ExcelLibrary.SpreadSheet.CellFormat(ExcelLibrary.SpreadSheet.CellFormatType.DateTime, "yyyy-MM-dd");
                            //if (row[column] == System.DBNull.Value)
                            //    cell.Value = string.Empty;
                            //else
                            //    cell.Value = (DateTime)row[column];
                            if (row[column] != System.DBNull.Value)
                            {
                                cell.SetCellValue((DateTime)row[column]);
                            }

                            cell.CellStyle = dateCellStyle;
                        }
                        else
                        {
                            //cell.Format = new ExcelLibrary.SpreadSheet.CellFormat(ExcelLibrary.SpreadSheet.CellFormatType.Text, string.Empty);
                            //cell.Value = (row[column] == System.DBNull.Value ? string.Empty : row[column].ToString());
                            if (row[column] != System.DBNull.Value)
                            {
                                cell.SetCellValue(row[column].ToString());
                            }
                        }
                        //worksheet.Cells[rowCount, columnCount] = cell;
                        columnCount++;
                    }
                    //                    worksheet.Cells.Rows.Add(rowCount, detailRow);
                }
                //workbook.Worksheets.Add(worksheet);

                return(worksheet);
            }
            else
            {
                return(null);
            }
        }
Пример #12
0
        protected ushort GenerateColumnHeader(NPOI.HSSF.UserModel.HSSFSheet workSheet, System.Data.DataSet dataSet,
                                              string HierarchyHeader, ushort RowPos,
                                              NPOI.HSSF.UserModel.HSSFCellStyle GroupHeaderStyle,
                                              NPOI.HSSF.UserModel.HSSFCellStyle MonthHeaderStyle,
                                              NPOI.HSSF.UserModel.HSSFCellStyle ColumnHeaderStyle)
        {
            DataTable paymentTable   = dataSet.Tables["payment"];
            DataTable hierarchyTable = dataSet.Tables["hierarchy"];
            DataTable payPeriodTable = dataSet.Tables["payPeriod"];


            NPOI.HSSF.UserModel.HSSFRow  monthRow;
            NPOI.HSSF.UserModel.HSSFRow  columnHeaderRow;
            NPOI.HSSF.UserModel.HSSFRow  row  = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow((int)RowPos);
            NPOI.HSSF.UserModel.HSSFCell cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(0);

            //workSheet.Cells.Add((int)RowPos, 1, HierarchyHeader, xf);
            monthRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow((int)RowPos);
            RowPos++;
            columnHeaderRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow((int)RowPos);

            ushort colPos = 0;

            if (bolShowIndividual == true)
            {
                cell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colPos);
                cell.SetCellValue("Employee No.");
                cell.CellStyle = ColumnHeaderStyle;

                colPos++;
                cell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colPos);
                cell.SetCellValue("English Name");
                cell.CellStyle = ColumnHeaderStyle;

                colPos++;
                cell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colPos);
                cell.SetCellValue("Alias");
                cell.CellStyle = ColumnHeaderStyle;

                colPos++;
                cell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colPos);
                cell.SetCellValue("Chinese Name");
                cell.CellStyle = ColumnHeaderStyle;

                foreach (DataRow hierarchyRow in hierarchyTable.Rows)
                {
                    colPos++;
                    cell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colPos);
                    cell.SetCellValue(hierarchyRow["LevelDesc"].ToString());
                    cell.CellStyle = ColumnHeaderStyle;
                }
            }
            else
            {
                cell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colPos);
                cell.SetCellValue(HierarchyHeader);
                cell.CellStyle = ColumnHeaderStyle;
            }

            summaryStart = Convert.ToUInt16(colPos + Convert.ToUInt16(1));

            foreach (DataRow payPeriodRow in payPeriodTable.Rows)
            {
                colPos++;

                cell = (NPOI.HSSF.UserModel.HSSFCell)monthRow.CreateCell(colPos);
                cell.SetCellValue(DateTime.Parse(payPeriodRow["payPeriodFr"].ToString()).ToString("dd-MM-yyyy"));
                cell.CellStyle = MonthHeaderStyle;


                workSheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(monthRow.RowNum, monthRow.RowNum, colPos, colPos + 3));

                cell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colPos);
                cell.SetCellValue("MPF EE");
                cell.CellStyle = ColumnHeaderStyle;

                colPos++;
                cell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colPos);
                cell.SetCellValue("Net Payment");
                cell.CellStyle = ColumnHeaderStyle;

                colPos++;
                cell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colPos);
                cell.SetCellValue("MPF ER");
                cell.CellStyle = ColumnHeaderStyle;

                colPos++;
                cell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colPos);
                cell.SetCellValue("Total");
                cell.CellStyle = ColumnHeaderStyle;
            }

            RowPos++;
            return(RowPos);
        }
Пример #13
0
        public ActionResult ExceFill()
        {
            //创建一个ExCel文件的对象
            NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
            //获取集合的数据
            List <ZhengZaiShangKeBiao> LIst = ShangKeBiaoBLL.GetAllData().OrderBy(p => p.RiQi).ToList();

            //添加1个Sheet
            NPOI.HSSF.UserModel.HSSFSheet sheet = (NPOI.HSSF.UserModel.HSSFSheet)book.CreateSheet("Sheet1");
            //给sheet添加第一行的头部标题;获取工作表的第一行
            NPOI.HSSF.UserModel.HSSFRow row1 = (NPOI.HSSF.UserModel.HSSFRow)sheet.CreateRow(0);
            row1.CreateCell(0).SetCellValue("班级名称");
            row1.CreateCell(1).SetCellValue("教室");
            row1.CreateCell(2).SetCellValue("时间");
            row1.CreateCell(3).SetCellValue("时间段");
            row1.CreateCell(4).SetCellValue("阶段");
            row1.CreateCell(5).SetCellValue("教员名称");
            row1.CreateCell(6).SetCellValue("课程");
            //将数据逐步写入到Sheet各个行
            for (int i = 0; i < LIst.Count; i++)
            {
                //根据班级名查询出班级阶段
                //int c;
                //if (LIst[i].JiaoYuanMingChen == "未安排")
                //{
                //    c = 0;
                //}
                //else
                //{
                //    c = Convert.ToInt32(LIst[i].JiaoYuanBianHao);
                //}
                //var a = yuan.GetAllData().Where(p => p.ID == c).ToList();
                var ClassJD = BanJiBiaoBLL.GetAllData().Where(p => p.BanJiMing == LIst[i].ClassName).First();
                //var JD = JiaoXueJieDuanBLL.GetAllData().Where(p => p.ID == ClassJD.JieDuanID).First();
                //继续构造excel的数据行
                NPOI.HSSF.UserModel.HSSFRow rowtemp = (NPOI.HSSF.UserModel.HSSFRow)sheet.CreateRow(i + 1);
                var Class = KeChengJiHuaBiaoBLL.GetAllData().Where(p => p.BanJiMing == LIst[i].ClassName).First();
                //var JD = JiaoXueJieDuanBLL.GetAllData().Where(p => p.ID == Class.KaiSheJiaoXueJieDuan).First();
                rowtemp.CreateCell(0).SetCellValue(LIst[i].ClassName.ToString());
                rowtemp.CreateCell(1).SetCellValue(LIst[i].ZiYuanMingChen.ToString());
                rowtemp.CreateCell(2).SetCellValue(Convert.ToDateTime(LIst[i].RiQi).ToString("yyyy-MM-dd"));
                rowtemp.CreateCell(3).SetCellValue(LIst[i].ShiJianDuan.ToString());
                rowtemp.CreateCell(4).SetCellValue(1);
                rowtemp.CreateCell(5).SetCellValue(LIst[i].JiaoYuanMingChen);
                rowtemp.CreateCell(6).SetCellValue(LIst[i].KeChengMingChen.ToString());
                //继续添加列数据
            }
            //写入到客户端
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            //Excel写入到内存中
            book.Write(ms);
            //从0位置读到结束
            ms.Seek(0, System.IO.SeekOrigin.Begin);
            Message();
            //读取内存流中的二进制
            byte[] bytes = ms.ToArray();
            ms.Close();
            ms.Dispose();
            OutputCilent(bytes);
            return(Json(new { errorNo = "0", errorInfo = "查询成功" }, JsonRequestBehavior.AllowGet));
        }
        public void GenerateExcelReport(string exportFileName)
        {
            DataSet.Payroll_KTPFundStatement dataSet = CreateDataSource();

            int lastRowIndex = 0;

            // Set column style
            NPOI.HSSF.UserModel.HSSFWorkbook workbook  = new NPOI.HSSF.UserModel.HSSFWorkbook();
            NPOI.HSSF.UserModel.HSSFSheet    worksheet = (NPOI.HSSF.UserModel.HSSFSheet)workbook.CreateSheet("KTPF Contribution Report");

            // Date format
            NPOI.HSSF.UserModel.HSSFDataFormat format        = (NPOI.HSSF.UserModel.HSSFDataFormat)workbook.CreateDataFormat();
            NPOI.HSSF.UserModel.HSSFCellStyle  dateCellStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            dateCellStyle.DataFormat   = format.GetFormat("yyyy-MM-dd");
            dateCellStyle.Alignment    = NPOI.SS.UserModel.HorizontalAlignment.RIGHT;
            dateCellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.DOTTED;
            dateCellStyle.BorderLeft   = NPOI.SS.UserModel.BorderStyle.DOTTED;
            dateCellStyle.BorderRight  = NPOI.SS.UserModel.BorderStyle.DOTTED;

            // Numeric format
            NPOI.HSSF.UserModel.HSSFCellStyle numericStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            numericStyle.DataFormat   = workbook.CreateDataFormat().GetFormat("#,##0.00;(#,##0.00);-");
            numericStyle.Alignment    = NPOI.SS.UserModel.HorizontalAlignment.RIGHT;
            numericStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.DOTTED;
            numericStyle.BorderLeft   = NPOI.SS.UserModel.BorderStyle.DOTTED;
            numericStyle.BorderRight  = NPOI.SS.UserModel.BorderStyle.DOTTED;

            // String left format
            NPOI.HSSF.UserModel.HSSFCellStyle stringLeftStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            stringLeftStyle.Alignment    = NPOI.SS.UserModel.HorizontalAlignment.LEFT;
            stringLeftStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.DOTTED;
            stringLeftStyle.BorderLeft   = NPOI.SS.UserModel.BorderStyle.DOTTED;
            stringLeftStyle.BorderRight  = NPOI.SS.UserModel.BorderStyle.DOTTED;

            // String center format
            NPOI.HSSF.UserModel.HSSFCellStyle stringCenterStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            stringCenterStyle.Alignment    = NPOI.SS.UserModel.HorizontalAlignment.CENTER;
            stringCenterStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.DOTTED;
            stringCenterStyle.BorderLeft   = NPOI.SS.UserModel.BorderStyle.DOTTED;
            stringCenterStyle.BorderRight  = NPOI.SS.UserModel.BorderStyle.DOTTED;

            // Column 0 style
            NPOI.HSSF.UserModel.HSSFCellStyle column0Style = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            column0Style.BorderLeft   = NPOI.SS.UserModel.BorderStyle.THIN;
            column0Style.Alignment    = NPOI.SS.UserModel.HorizontalAlignment.LEFT;
            column0Style.BorderBottom = NPOI.SS.UserModel.BorderStyle.DOTTED;
            column0Style.BorderRight  = NPOI.SS.UserModel.BorderStyle.DOTTED;

            // Column 10, 11 style
            NPOI.HSSF.UserModel.HSSFCellStyle column10To11Style = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            column10To11Style.BorderRight  = NPOI.SS.UserModel.BorderStyle.THIN;
            column10To11Style.BorderBottom = NPOI.SS.UserModel.BorderStyle.DOTTED;
            column10To11Style.BorderLeft   = NPOI.SS.UserModel.BorderStyle.DOTTED;

            // Column 4 style
            NPOI.HSSF.UserModel.HSSFCellStyle column4Style = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            column4Style.DataFormat   = workbook.CreateDataFormat().GetFormat("#,##0.00;(#,##0.00);-");
            column4Style.BorderRight  = NPOI.SS.UserModel.BorderStyle.THIN;
            column4Style.BorderBottom = NPOI.SS.UserModel.BorderStyle.DOTTED;
            column4Style.BorderLeft   = NPOI.SS.UserModel.BorderStyle.DOTTED;

            // Column 8 style
            NPOI.HSSF.UserModel.HSSFCellStyle column8Style = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            column8Style.DataFormat   = format.GetFormat("yyyy-MM-dd");
            column8Style.Alignment    = NPOI.SS.UserModel.HorizontalAlignment.RIGHT;
            column8Style.BorderRight  = NPOI.SS.UserModel.BorderStyle.THIN;
            column8Style.BorderBottom = NPOI.SS.UserModel.BorderStyle.DOTTED;
            column8Style.BorderLeft   = NPOI.SS.UserModel.BorderStyle.DOTTED;

            // Align right
            NPOI.HSSF.UserModel.HSSFCellStyle style = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.RIGHT;

            // Bottom border
            NPOI.HSSF.UserModel.HSSFCellStyle bottomBorderStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            bottomBorderStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.THIN;

            // Bold style
            NPOI.HSSF.UserModel.HSSFCellStyle boldStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            NPOI.SS.UserModel.IFont           boldFont  = workbook.CreateFont();
            boldFont.Boldweight = 700;
            boldStyle.SetFont(boldFont);

            // Header Border
            NPOI.HSSF.UserModel.HSSFCellStyle headerBorderStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            headerBorderStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.THIN;
            headerBorderStyle.BorderTop    = NPOI.SS.UserModel.BorderStyle.THIN;
            headerBorderStyle.BorderRight  = NPOI.SS.UserModel.BorderStyle.DOTTED;
            headerBorderStyle.SetFont(boldFont);
            headerBorderStyle.WrapText  = true;
            headerBorderStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER;

            // Header Left Border
            NPOI.HSSF.UserModel.HSSFCellStyle headerLeftBorderStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            headerLeftBorderStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.THIN;
            headerLeftBorderStyle.BorderTop    = NPOI.SS.UserModel.BorderStyle.THIN;
            headerLeftBorderStyle.BorderLeft   = NPOI.SS.UserModel.BorderStyle.THIN;
            headerLeftBorderStyle.BorderRight  = NPOI.SS.UserModel.BorderStyle.DOTTED;
            headerLeftBorderStyle.SetFont(boldFont);
            headerLeftBorderStyle.WrapText  = true;
            headerLeftBorderStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER;

            // Header Right Border
            NPOI.HSSF.UserModel.HSSFCellStyle headerRightBorderStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            headerRightBorderStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.THIN;
            headerRightBorderStyle.BorderTop    = NPOI.SS.UserModel.BorderStyle.THIN;
            headerRightBorderStyle.BorderRight  = NPOI.SS.UserModel.BorderStyle.THIN;
            headerRightBorderStyle.SetFont(boldFont);
            headerRightBorderStyle.WrapText  = true;
            headerRightBorderStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER;

            // Total numeric format
            NPOI.HSSF.UserModel.HSSFCellStyle totalNumericStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            totalNumericStyle.DataFormat = workbook.CreateDataFormat().GetFormat("#,##0.00;(#,##0.00);-");
            totalNumericStyle.Alignment  = NPOI.SS.UserModel.HorizontalAlignment.RIGHT;
            totalNumericStyle.BorderTop  = NPOI.SS.UserModel.BorderStyle.THIN;

            // Grey color
            NPOI.HSSF.UserModel.HSSFCellStyle grey25Style = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            grey25Style.Alignment           = NPOI.SS.UserModel.HorizontalAlignment.CENTER;
            grey25Style.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.GREY_25_PERCENT.index;
            grey25Style.FillPattern         = NPOI.SS.UserModel.FillPatternType.SOLID_FOREGROUND;
            grey25Style.SetFont(boldFont);

            // Yellow color
            NPOI.HSSF.UserModel.HSSFCellStyle yellowStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
            yellowStyle.Alignment           = NPOI.SS.UserModel.HorizontalAlignment.CENTER;
            yellowStyle.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.LIGHT_YELLOW.index;
            yellowStyle.FillPattern         = NPOI.SS.UserModel.FillPatternType.SOLID_FOREGROUND;
            yellowStyle.SetFont(boldFont);

            // Set column width
            worksheet.SetColumnWidth(0, 12 * 256);
            worksheet.SetColumnWidth(1, 20 * 256);
            worksheet.SetColumnWidth(2, 15 * 256);
            worksheet.SetColumnWidth(3, 15 * 256);
            worksheet.SetColumnWidth(4, 15 * 256);
            worksheet.SetColumnWidth(5, 7 * 256);
            worksheet.SetColumnWidth(6, 15 * 256);
            worksheet.SetColumnWidth(7, 15 * 256);
            worksheet.SetColumnWidth(8, 15 * 256);
            worksheet.SetColumnWidth(9, 15 * 256);
            worksheet.SetColumnWidth(10, 15 * 256);
            worksheet.SetColumnWidth(11, 25 * 256);

            // Set column title
            NPOI.HSSF.UserModel.HSSFRow headerRow = (NPOI.HSSF.UserModel.HSSFRow)worksheet.CreateRow(0);

            NPOI.HSSF.UserModel.HSSFCell headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(0);
            headerCell.SetCellValue("KTPF Contribution Report");
            headerCell.CellStyle = boldStyle;

            headerRow  = (NPOI.HSSF.UserModel.HSSFRow)worksheet.CreateRow(1);
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(0);
            if (dataSet.ORSOPlan.Rows.Count > 0)
            {
                Payroll_KTPFundStatement.ORSOPlanRow m_orsoPlan = (Payroll_KTPFundStatement.ORSOPlanRow)dataSet.ORSOPlan.Rows[0];

                headerCell.SetCellValue(m_orsoPlan.ORSOPlanCompanyName);
            }
            headerCell.CellStyle = boldStyle;

            string m_reportPeriod = "";

            if (_payPeriodFr.Month != _payPeriodTo.Month)
            {
                m_reportPeriod = _payPeriodFr.ToString("dd MMMM yyyy") + " - " + _payPeriodTo.ToString("dd MMMM yyyy");
            }
            else
            {
                m_reportPeriod = _payPeriodFr.ToString("MMMM yyyy");
            }

            headerRow  = (NPOI.HSSF.UserModel.HSSFRow)worksheet.CreateRow(2);
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(0);
            headerCell.SetCellValue(m_reportPeriod);
            headerCell.CellStyle = boldStyle;

            // Merge header
            headerRow = (NPOI.HSSF.UserModel.HSSFRow)worksheet.CreateRow(3);

            // Merge cell from 5-8
            NPOI.SS.Util.CellRangeAddress cellRangeAddress = new NPOI.SS.Util.CellRangeAddress(3, (short)3, 5, (short)8);
            worksheet.AddMergedRegion(cellRangeAddress);
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(5);
            headerCell.SetCellValue("For New Joiner");
            headerCell.CellStyle = yellowStyle;

            ((NPOI.HSSF.UserModel.HSSFSheet)worksheet).SetEnclosedBorderOfRegion(cellRangeAddress, NPOI.SS.UserModel.BorderStyle.THIN, NPOI.HSSF.Util.HSSFColor.BLACK.index);

            // Merge cell from 9-10
            cellRangeAddress = new NPOI.SS.Util.CellRangeAddress(3, (short)3, 9, (short)10);
            worksheet.AddMergedRegion(cellRangeAddress);
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(9);
            headerCell.SetCellValue("For Resigned Staff");
            headerCell.CellStyle = grey25Style;
            ((NPOI.HSSF.UserModel.HSSFSheet)worksheet).SetEnclosedBorderOfRegion(cellRangeAddress, NPOI.SS.UserModel.BorderStyle.THIN, NPOI.HSSF.Util.HSSFColor.BLACK.index);

            headerRow = (NPOI.HSSF.UserModel.HSSFRow)worksheet.CreateRow(4);
            headerRow.HeightInPoints = 40;

            // column A
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(0);
            headerCell.SetCellValue("Member ID");
            headerCell.CellStyle = headerLeftBorderStyle;

            // column B
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(1);
            headerCell.SetCellValue("Employee Name");
            headerCell.CellStyle = headerBorderStyle;

            // column C
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(2);
            headerCell.SetCellValue("Basic Salary");
            headerCell.CellStyle = headerBorderStyle;

            // column D
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(3);
            headerCell.SetCellValue("KTPF Contribution");
            headerCell.CellStyle = headerBorderStyle;

            // column E
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(4);
            headerCell.SetCellValue("Employer MPF Contribution");
            headerCell.CellStyle = headerRightBorderStyle;


            // column F
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(5);
            headerCell.SetCellValue("Sex");
            headerCell.CellStyle = headerBorderStyle;


            // column G
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(6);
            headerCell.SetCellValue("Date Of Birth");
            headerCell.CellStyle = headerBorderStyle;


            // column H
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(7);
            headerCell.SetCellValue("Date Join");
            headerCell.CellStyle = headerBorderStyle;

            // column I
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(8);
            headerCell.SetCellValue("Effective Date");
            headerCell.CellStyle = headerRightBorderStyle;

            // column J
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(9);
            headerCell.SetCellValue("Termination Date");
            headerCell.CellStyle = headerBorderStyle;

            // column K
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(10);
            headerCell.SetCellValue("Termination Mode");
            headerCell.CellStyle = headerRightBorderStyle;

            // column L
            headerCell = (NPOI.HSSF.UserModel.HSSFCell)headerRow.CreateCell(11);
            headerCell.SetCellValue("Remarks");
            headerCell.CellStyle = headerRightBorderStyle;

            // Create total
            int length = dataSet.ExistingMember.Rows.Count + 5;

            NPOI.HSSF.UserModel.HSSFRow totalRow = (NPOI.HSSF.UserModel.HSSFRow)worksheet.CreateRow(lastRowIndex + length);

            NPOI.HSSF.UserModel.HSSFCell totalCell = (NPOI.HSSF.UserModel.HSSFCell)totalRow.CreateCell(0);
            totalCell.CellStyle = totalNumericStyle;
            totalCell           = (NPOI.HSSF.UserModel.HSSFCell)totalRow.CreateCell(5);
            totalCell.CellStyle = totalNumericStyle;
            totalCell           = (NPOI.HSSF.UserModel.HSSFCell)totalRow.CreateCell(6);
            totalCell.CellStyle = totalNumericStyle;
            totalCell           = (NPOI.HSSF.UserModel.HSSFCell)totalRow.CreateCell(7);
            totalCell.CellStyle = totalNumericStyle;
            totalCell           = (NPOI.HSSF.UserModel.HSSFCell)totalRow.CreateCell(8);
            totalCell.CellStyle = totalNumericStyle;
            totalCell           = (NPOI.HSSF.UserModel.HSSFCell)totalRow.CreateCell(9);
            totalCell.CellStyle = totalNumericStyle;
            totalCell           = (NPOI.HSSF.UserModel.HSSFCell)totalRow.CreateCell(10);
            totalCell.CellStyle = totalNumericStyle;
            totalCell           = (NPOI.HSSF.UserModel.HSSFCell)totalRow.CreateCell(11);
            totalCell.CellStyle = totalNumericStyle;

            totalCell = (NPOI.HSSF.UserModel.HSSFCell)totalRow.CreateCell(1);
            totalCell.SetCellValue("Total");
            totalCell.CellStyle = totalNumericStyle;

            totalCell = (NPOI.HSSF.UserModel.HSSFCell)totalRow.CreateCell(2);
            totalCell.SetCellFormula("SUM(C5:C" + totalRow.RowNum.ToString("0") + ")");
            totalCell.CellStyle = totalNumericStyle;

            totalCell = (NPOI.HSSF.UserModel.HSSFCell)totalRow.CreateCell(3);
            totalCell.SetCellFormula("SUM(D5:D" + totalRow.RowNum.ToString("0") + ")");
            totalCell.CellStyle = totalNumericStyle;

            totalCell = (NPOI.HSSF.UserModel.HSSFCell)totalRow.CreateCell(4);
            totalCell.SetCellFormula("SUM(E5:E" + totalRow.RowNum.ToString("0") + ")");
            totalCell.CellStyle = totalNumericStyle;

            int rowLength = 0;

            // Set value for every row

            dataSet.ExistingMember.DefaultView.Sort = "EmpName";
            DataTable m_table = dataSet.ExistingMember.DefaultView.ToTable();


            foreach (DataRow m_row in m_table.Rows)
            //foreach (DataRow row in tmpDataTable.Rows)
            {
                NPOI.HSSF.UserModel.HSSFRow detailRow = (NPOI.HSSF.UserModel.HSSFRow)worksheet.CreateRow(lastRowIndex + 5);
                rowLength++;

                if (lastRowIndex == (m_table.Rows.Count))
                {
                    detailRow.RowStyle = bottomBorderStyle;
                }

                NPOI.HSSF.UserModel.HSSFCell cell = (NPOI.HSSF.UserModel.HSSFCell)detailRow.CreateCell(0);
                cell.SetCellValue(m_row["MemberID"].ToString());
                cell.CellStyle = column0Style;

                cell = (NPOI.HSSF.UserModel.HSSFCell)detailRow.CreateCell(1);
                cell.SetCellValue(m_row["EmpName"].ToString());
                cell.CellStyle = stringLeftStyle;

                cell = (NPOI.HSSF.UserModel.HSSFCell)detailRow.CreateCell(2);
                cell.SetCellValue((double)m_row["RelevantIncome"]);
                cell.CellStyle = numericStyle;

                cell = (NPOI.HSSF.UserModel.HSSFCell)detailRow.CreateCell(3);
                cell.SetCellValue((double)m_row["ER"]);
                cell.CellStyle = numericStyle;

                cell = (NPOI.HSSF.UserModel.HSSFCell)detailRow.CreateCell(4);
                cell.SetCellValue((double)m_row["MpfMCER"]);
                cell.CellStyle = column4Style;

                DateTime m_periodFrom = (DateTime)m_row["PeriodFrom"];
                DateTime m_effDate    = (DateTime)m_row["OrsoEffDate"];

                {
                    cell           = (NPOI.HSSF.UserModel.HSSFCell)detailRow.CreateCell(5);
                    cell.CellStyle = stringCenterStyle;
                    if (m_periodFrom.Year == m_effDate.Year && m_periodFrom.Year == m_effDate.Month)
                    {
                        cell.SetCellValue(m_row["EmpSex"].ToString());
                    }

                    cell           = (NPOI.HSSF.UserModel.HSSFCell)detailRow.CreateCell(6);
                    cell.CellStyle = dateCellStyle;

                    if (m_periodFrom.Year == m_effDate.Year && m_periodFrom.Year == m_effDate.Month)
                    {
                        try
                        {
                            cell.SetCellValue((DateTime)m_row["EmpDOB"]);
                        }
                        catch { }
                    }

                    cell           = (NPOI.HSSF.UserModel.HSSFCell)detailRow.CreateCell(7);
                    cell.CellStyle = dateCellStyle;
                    if (m_periodFrom.Year == m_effDate.Year && m_periodFrom.Year == m_effDate.Month)
                    {
                        try
                        {
                            cell.SetCellValue((DateTime)m_row["EmpDateJoin"]);
                        }
                        catch { }
                    }

                    cell           = (NPOI.HSSF.UserModel.HSSFCell)detailRow.CreateCell(8);
                    cell.CellStyle = column8Style;
                    if (m_periodFrom.Year == m_effDate.Year && m_periodFrom.Year == m_effDate.Month)
                    {
                        try
                        {
                            cell.SetCellValue((DateTime)m_row["OrsoEffDate"]);
                        }
                        catch { }
                    }
                }
                cell           = (NPOI.HSSF.UserModel.HSSFCell)detailRow.CreateCell(9);
                cell.CellStyle = dateCellStyle;
                cell.SetCellValue("");// put something into the cell and so as the border line can be shown
                if (m_periodFrom.Year == m_effDate.Year && m_periodFrom.Year == m_effDate.Month)
                {
                    try
                    {
                        cell.SetCellValue((DateTime)m_row["LastEmploymentDate"]);
                    }
                    catch { }
                }

                cell = (NPOI.HSSF.UserModel.HSSFCell)detailRow.CreateCell(10);
                cell.SetCellValue(m_row["TermCode"].ToString());
                cell.CellStyle = column10To11Style;

                cell = (NPOI.HSSF.UserModel.HSSFCell)detailRow.CreateCell(11);
                //cell.SetCellValue(row[FIELD_REMARKS].ToString());
                cell.CellStyle = column10To11Style;

                lastRowIndex++;
            }

            System.IO.FileStream file = new System.IO.FileStream(exportFileName, System.IO.FileMode.Create);
            workbook.Write(file);
            file.Close();
        }
Пример #15
0
        public ActionResult   ExportMsg()
        {
            List <String> list     = new List <String>();
            List <String> listName = new List <String>();

            #region 初始化数据
            //得到选中项 这是比较笨的方法,有机会要改进哈
            if (Request.Form["StuNum"] != null)
            {
                list.Add("StuNum"); listName.Add("学号");
            }
            if (Request.Form["StuName"] != null)
            {
                list.Add("StuName"); listName.Add("姓名");
            }
            if (Request.Form["Gender"] != null)
            {
                list.Add("Gender"); listName.Add("性别");
            }
            if (Request.Form["QQNum"] != null)
            {
                list.Add("QQNum"); listName.Add("QQ号");
            }
            if (Request.Form["Email"] != null)
            {
                list.Add("Email"); listName.Add("电子邮箱");
            }
            if (Request.Form["Birthday"] != null)
            {
                list.Add("Birthday"); listName.Add("生日");
            }
            if (Request.Form["Class"] != null)
            {
                list.Add("Class"); listName.Add("班级");
            }
            if (Request.Form["TelephoneNumber"] != null)
            {
                list.Add("TelephoneNumber"); listName.Add("电话号码");
            }
            if (Request.Form["Department"] != null)
            {
                list.Add("Department"); listName.Add("部门");
            }
            if (Request.Form["TechnicalGuideNumber"] != null)
            {
                list.Add("TechnicalGuideNumber"); listName.Add("技术指导号");
            }
            if (Request.Form["JoinTime"] != null)
            {
                list.Add("JoinTime"); listName.Add("加入时间");
            }
            if (Request.Form["Major"] != null)
            {
                list.Add("Major"); listName.Add("主修");
            }
            if (Request.Form["Counseloer"] != null)
            {
                list.Add("Counseloer"); listName.Add("辅导员");
            }
            if (Request.Form["HeadTeacher"] != null)
            {
                list.Add("HeadTeacher"); listName.Add("班主任");
            }
            if (Request.Form["UndergraduateTutor"] != null)
            {
                list.Add("UndergraduateTutor"); listName.Add("毕业导师");
            }
            if (Request.Form["HomPhoneNumber"] != null)
            {
                list.Add("HomPhoneNumber"); listName.Add("家庭电话");
            }
            if (Request.Form["FamilyAddress"] != null)
            {
                list.Add("FamilyAddress"); listName.Add("家庭地址");
            }
            if (Request.Form["Sign"] != null)
            {
                list.Add("Sign"); listName.Add("个性签名");
            }
            int depart = 0;
            if (!string.IsNullOrEmpty((Request.Form["depart"])))
            {
                depart = Convert.ToInt32(Request.Form["depart"]);
            }
            if (list.Count == 0)
            {
                return(Content("<script>alert('您没有选择任何项喔~~!');window.location='/PersonalManger/CheckMember/index'</script>"));
            }
            DataTable dt = OperateContext.Current.BLLSession.IMemberInformationBLL.GetPartData(list, depart);
            //如果选择了部门那么导出时要将数字转为部门名
            int count = 0;
            if (Request.Form["Department"] != null)
            {
                for (int i = 0; i < list.Count; i++)
                {
                    if (list[i] == "Department")
                    {
                        count = i;
                    }
                }
            }
            #endregion
            NPOI.HSSF.UserModel.HSSFWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook();
            NPOI.HSSF.UserModel.HSSFSheet    sheet    = workbook.CreateSheet("第一页") as NPOI.HSSF.UserModel.HSSFSheet;
            NPOI.HSSF.UserModel.HSSFRow      hr       = sheet.CreateRow(0) as NPOI.HSSF.UserModel.HSSFRow;
            for (int i = 0; i < listName.Count; i++)
            {
                hr.CreateCell(i).SetCellValue(listName[i]);
            }
            for (int rowIndex = 0; rowIndex < dt.Rows.Count; rowIndex++)
            {
                NPOI.HSSF.UserModel.HSSFRow hro = sheet.CreateRow(rowIndex + 1) as NPOI.HSSF.UserModel.HSSFRow;
                for (int colIndex = 0; colIndex < listName.Count; colIndex++)
                {
                    string str = "";
                    if (colIndex == count && count != 0)
                    {
                        if (dt.Rows[rowIndex][colIndex].ToString() == "10001")
                        {
                            str = "NET应用开发部";
                        }
                        if (dt.Rows[rowIndex][colIndex].ToString() == "10002")
                        {
                            str = "安卓应用开发部";
                        }
                        if (dt.Rows[rowIndex][colIndex].ToString() == "10003")
                        {
                            str = "硬件编程技术部";
                        }
                        if (dt.Rows[rowIndex][colIndex].ToString() == "10004")
                        {
                            str = "系统编程技术部";
                        }
                        if (dt.Rows[rowIndex][colIndex].ToString() == "10007")
                        {
                            str = "暂未加入部门";
                        }
                        hro.CreateCell(colIndex).SetCellValue(str);
                    }
                    else
                    {
                        hro.CreateCell(colIndex).SetCellValue(dt.Rows[rowIndex][colIndex].ToString());
                    }
                }
            }
            MemoryStream ms = new MemoryStream();
            workbook.Write(ms);
            ms.Seek(0, SeekOrigin.Begin);
            return(File(ms, "application/vnd.ms-excel"));
        }
Пример #16
0
        public void WriteToSpreadsheet(DataTable _dataTable, NPOI.HSSF.UserModel.HSSFSheet _worksheet, string _schemeNo, string _companyName, int _billingClass)
        {
            if (_worksheet != null)
            {
                NPOI.HSSF.UserModel.HSSFDataFormat _format = (NPOI.HSSF.UserModel.HSSFDataFormat)_worksheet.Workbook.CreateDataFormat();

                // font setting(bold)
                NPOI.HSSF.UserModel.HSSFFont _boldFont = (NPOI.HSSF.UserModel.HSSFFont)_worksheet.Workbook.CreateFont();
                _boldFont.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.BOLD; //900;

                // font setting(underline)
                NPOI.HSSF.UserModel.HSSFFont _sectionHeaderFont = (NPOI.HSSF.UserModel.HSSFFont)_worksheet.Workbook.CreateFont();
                _sectionHeaderFont.Underline  = (byte)1;
                _sectionHeaderFont.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.BOLD; //900;

                // style setting
                NPOI.HSSF.UserModel.HSSFCellStyle _sectionHeaderStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)_worksheet.Workbook.CreateCellStyle();
                _sectionHeaderStyle.SetFont(_sectionHeaderFont);


                NPOI.HSSF.UserModel.HSSFCellStyle _dateCellStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)_worksheet.Workbook.CreateCellStyle();
                _dateCellStyle.DataFormat = _format.GetFormat("yyyy-MM-dd");
                _dateCellStyle.Alignment  = NPOI.SS.UserModel.HorizontalAlignment.CENTER;

                NPOI.HSSF.UserModel.HSSFCellStyle _doubleCellStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)_worksheet.Workbook.CreateCellStyle();
                _doubleCellStyle.DataFormat = _format.GetFormat("#,##0.00");
                _doubleCellStyle.Alignment  = NPOI.SS.UserModel.HorizontalAlignment.RIGHT;

                NPOI.HSSF.UserModel.HSSFCellStyle _boldTextCellStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)_worksheet.Workbook.CreateCellStyle();
                _boldTextCellStyle.SetFont(_boldFont);

                //NPOI.HSSF.UserModel.HSSFCellStyle _underlineTextCellStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)_worksheet.Workbook.CreateCellStyle();
                //_underlineTextCellStyle.SetFont(_underlineFont);

                // bottom line style
                NPOI.HSSF.UserModel.HSSFCellStyle _boldTextWithBottomBorderCellStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)_worksheet.Workbook.CreateCellStyle();
                _boldTextWithBottomBorderCellStyle.SetFont(_boldFont);
                _boldTextWithBottomBorderCellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.THIN;
                _boldTextWithBottomBorderCellStyle.Alignment    = NPOI.SS.UserModel.HorizontalAlignment.CENTER;

                NPOI.HSSF.UserModel.HSSFCellStyle _bottomBorderCellStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)_worksheet.Workbook.CreateCellStyle();
                _bottomBorderCellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.THIN;

                NPOI.HSSF.UserModel.HSSFCellStyle _chequeAmountCellStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)_worksheet.Workbook.CreateCellStyle();
                _chequeAmountCellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.THIN;
                _chequeAmountCellStyle.DataFormat   = _format.GetFormat("$#,##0.00");

                // header style
                NPOI.HSSF.UserModel.HSSFCellStyle _leftHeaderStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)_worksheet.Workbook.CreateCellStyle();
                _leftHeaderStyle.SetFont(_boldFont);
                _leftHeaderStyle.WrapText = true;

                NPOI.HSSF.UserModel.HSSFCellStyle _rightHeaderStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)_worksheet.Workbook.CreateCellStyle();
                _rightHeaderStyle.SetFont(_boldFont);
                _rightHeaderStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.RIGHT;
                _rightHeaderStyle.WrapText  = true;

                NPOI.HSSF.UserModel.HSSFCellStyle _centerHeaderStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)_worksheet.Workbook.CreateCellStyle();
                _centerHeaderStyle.SetFont(_boldFont);
                _centerHeaderStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER;
                _centerHeaderStyle.WrapText  = true;


                // START !!!
                NPOI.HSSF.UserModel.HSSFRow _row = (NPOI.HSSF.UserModel.HSSFRow)_worksheet.CreateRow(0);

                NPOI.HSSF.UserModel.HSSFCell _cell = (NPOI.HSSF.UserModel.HSSFCell)_row.CreateCell(0);
                WriteCellText(_row, 0, "Scheme No.");
                WriteCellText(_row, 1, _schemeNo);

                _row = (NPOI.HSSF.UserModel.HSSFRow)_worksheet.CreateRow(1);
                WriteCellText(_row, 0, "Billing Class");
                WriteCellText(_row, 1, _billingClass.ToString("00"));

                _row = (NPOI.HSSF.UserModel.HSSFRow)_worksheet.CreateRow(2);
                WriteCellText(_row, 0, "Co. Name");
                WriteCellText(_row, 1, _companyName.ToUpper());

                _row = (NPOI.HSSF.UserModel.HSSFRow)_worksheet.CreateRow(4);

                switch (_worksheet.SheetName)
                {
                case "NewJoinMember":
                    WriteCellText(_row, 0, "Remittance Statement for NEW EMPLOYEES", _sectionHeaderStyle);
                    break;

                case "ExistingEmployee":
                    WriteCellText(_row, 0, "Remittance Statement for EXISTING EMPLOYEES", _sectionHeaderStyle);
                    break;

                case "TerminatedEmployee":
                    WriteCellText(_row, 0, "Remittance Statement for TERMINATED EMPLOYEES", _sectionHeaderStyle);
                    break;

                default:
                    break;
                }

                // column header
                _row = (NPOI.HSSF.UserModel.HSSFRow)_worksheet.CreateRow(6);
                WriteCellText(_row, 0, "Member Name", _leftHeaderStyle);
                WriteCellText(_row, 1, "Cert No.", _leftHeaderStyle);
                WriteCellText(_row, 2, "HKID no.", _leftHeaderStyle);
                WriteCellText(_row, 3, "Job Category", _leftHeaderStyle);
                WriteCellText(_row, 4, "Date of Employment\n(dd/mm/yyyy)", _centerHeaderStyle);
                WriteCellText(_row, 5, "Payroll Period\n(dd/mm/yyyy)", _centerHeaderStyle);
                WriteCellText(_row, 7, "Relevant Income", _rightHeaderStyle);
                WriteCellText(_row, 8, "Employee Mandatory Contribution", _rightHeaderStyle);
                WriteCellText(_row, 9, "Employer Mandatory Contribution", _rightHeaderStyle);
                WriteCellText(_row, 10, "Employee Voluntary Contribution", _rightHeaderStyle);
                WriteCellText(_row, 11, "Employer Voluntary Contribution", _rightHeaderStyle);
                WriteCellText(_row, 12, "Surcharge", _rightHeaderStyle);
                WriteCellText(_row, 13, "Last Date of Employment\n(dd/mm/yyyy)", _centerHeaderStyle);
                WriteCellText(_row, 14, "LSP/ SP Entitlement#\n(Y/N)", _leftHeaderStyle);
                WriteCellText(_row, 15, "Remarks^\n(Code: 1/2/3/4/5/6/7)", _leftHeaderStyle);

                // column header 2
                _row = (NPOI.HSSF.UserModel.HSSFRow)_worksheet.CreateRow(7);
                WriteCellText(_row, 0, "", _boldTextWithBottomBorderCellStyle);
                WriteCellText(_row, 1, ".", _boldTextWithBottomBorderCellStyle);
                WriteCellText(_row, 2, ".", _boldTextWithBottomBorderCellStyle);
                WriteCellText(_row, 3, "", _boldTextWithBottomBorderCellStyle);
                WriteCellText(_row, 4, "", _boldTextWithBottomBorderCellStyle);
                WriteCellText(_row, 5, "From", _boldTextWithBottomBorderCellStyle);
                WriteCellText(_row, 6, "To", _boldTextWithBottomBorderCellStyle);
                WriteCellText(_row, 7, "", _boldTextWithBottomBorderCellStyle);
                WriteCellText(_row, 8, "", _boldTextWithBottomBorderCellStyle);
                WriteCellText(_row, 9, "", _boldTextWithBottomBorderCellStyle);
                WriteCellText(_row, 10, "", _boldTextWithBottomBorderCellStyle);
                WriteCellText(_row, 11, "", _boldTextWithBottomBorderCellStyle);
                WriteCellText(_row, 12, "", _boldTextWithBottomBorderCellStyle);
                WriteCellText(_row, 13, "", _boldTextWithBottomBorderCellStyle);
                WriteCellText(_row, 14, "", _boldTextWithBottomBorderCellStyle);
                WriteCellText(_row, 15, "", _boldTextWithBottomBorderCellStyle);

                // merge column header
                NPOI.SS.Util.CellRangeAddress _cellRangeAddress;

                for (int i = 0; i < 16; i++)
                {
                    if (i == 5)
                    {
                        _cellRangeAddress = new NPOI.SS.Util.CellRangeAddress(6, 6, 5, 6);  // merge "Payroll Period"
                    }
                    else if (i == 6)
                    {
                        continue;
                    }
                    else
                    {
                        _cellRangeAddress = new NPOI.SS.Util.CellRangeAddress(6, 7, i, i);
                    }

                    _worksheet.AddMergedRegion(_cellRangeAddress);
                }

                // generate data
                int _currentRow   = 8;
                int _dataStartRow = 8;
                int _dataEndRow   = 0;
                foreach (DataRow _dataRow in _dataTable.Rows)
                {
                    _row = (NPOI.HSSF.UserModel.HSSFRow)_worksheet.CreateRow(_currentRow);
                    WriteCellText(_row, 0, _dataRow[FIELD_MEMBER_NAME].ToString());

                    WriteCellText(_row, 1, _dataRow[FIELD_CERT_NO].ToString());
                    WriteCellText(_row, 2, _dataRow[FIELD_HKID].ToString());
                    WriteCellText(_row, 3, _dataRow[FIELD_JOB_CATEGORY].ToString());
                    WriteCellText(_row, 4, ((DateTime)_dataRow[FIELD_EMPLOYMENT_DATE]), _dateCellStyle);
                    WriteCellText(_row, 5, ((DateTime)_dataRow[FIELD_FROM]), _dateCellStyle);
                    WriteCellText(_row, 6, ((DateTime)_dataRow[FIELD_TO]), _dateCellStyle);
                    WriteCellText(_row, 7, (double)_dataRow[FIELD_RELEVANT_INCOME], _doubleCellStyle);
                    WriteCellText(_row, 8, (double)_dataRow[FIELD_MCEE], _doubleCellStyle);
                    WriteCellText(_row, 9, (double)_dataRow[FIELD_MCER], _doubleCellStyle);
                    WriteCellText(_row, 10, (double)_dataRow[FIELD_VCEE], _doubleCellStyle);
                    WriteCellText(_row, 11, (double)_dataRow[FIELD_VCER], _doubleCellStyle);
                    WriteCellText(_row, 12, (double)_dataRow[FIELD_SURCHARGE], _doubleCellStyle);

                    if (_dataRow[FIELD_LAST_DATE_OF_EMPLOYMENT] != DBNull.Value)
                    {
                        WriteCellText(_row, 13, (double)_dataRow[FIELD_LAST_DATE_OF_EMPLOYMENT], _dateCellStyle);
                    }

                    WriteCellText(_row, 14, _dataRow[FIELD_LSP_SP_ENTITLMENT].ToString());
                    WriteCellText(_row, 15, _dataRow[FIELD_REMARKS].ToString());

                    _currentRow++;
                }
                _dataEndRow = _currentRow - 1;

                _currentRow++;

                _row = (NPOI.HSSF.UserModel.HSSFRow)_worksheet.CreateRow(_currentRow);
                WriteCellText(_row, 0, "Note:");

                _currentRow++;
                _row = (NPOI.HSSF.UserModel.HSSFRow)_worksheet.CreateRow(_currentRow);
                WriteCellText(_row, 0, "# Please indicate Yes/ No if reported Last Date of Employment for the member. If Yes, Notice of Termination form for the reimbursement of LSP/ SP will be provided");

                _currentRow++;
                _row = (NPOI.HSSF.UserModel.HSSFRow)_worksheet.CreateRow(_currentRow);
                WriteCellText(_row, 0, "^ 1. Rejoin   2. Intra-group transfer  3. back-payment for terminated member  4. Over age 65   5. Overseas member  6.New in Billing Class 02  7. Work < 60 days");

                _currentRow += 2;

                _row = (NPOI.HSSF.UserModel.HSSFRow)_worksheet.CreateRow(_currentRow);
                WriteCellText(_row, 0, "Cheque No.");
                WriteCellText(_row, 1, ChequeNo, _bottomBorderCellStyle);
                WriteCellText(_row, 3, "Cheque Amount");

                // write Cheque Amount
                //_row = (NPOI.HSSF.UserModel.HSSFRow)_worksheet.CreateRow(_currentRow);
                _cell           = (NPOI.HSSF.UserModel.HSSFCell)_row.CreateCell(4);
                _cell.CellStyle = _chequeAmountCellStyle;
                if (_dataEndRow >= _dataStartRow)
                {
                    _cell.CellFormula = "SUM(I" + Convert.ToInt32(_dataStartRow + 1).ToString("0") + ":L" + Convert.ToInt32(_dataEndRow + 1).ToString("0") + ")";
                }

                _currentRow += 6;
                _row         = (NPOI.HSSF.UserModel.HSSFRow)_worksheet.CreateRow(_currentRow);
                WriteCellText(_row, 0, " ", _bottomBorderCellStyle);
                WriteCellText(_row, 1, "", _bottomBorderCellStyle);
                WriteCellText(_row, 2, "", _bottomBorderCellStyle);

                _currentRow++;
                _row = (NPOI.HSSF.UserModel.HSSFRow)_worksheet.CreateRow(_currentRow);
                WriteCellText(_row, 0, "Authorized Signature and Co. Chop");

                _worksheet.SetColumnWidth(0, 20 * 256);
                _worksheet.SetColumnWidth(1, 15 * 256);
                _worksheet.SetColumnWidth(2, 14 * 256);
                _worksheet.SetColumnWidth(3, 14 * 256);
                _worksheet.SetColumnWidth(4, 14 * 256);
                _worksheet.SetColumnWidth(5, 14 * 256);
                _worksheet.SetColumnWidth(6, 14 * 256);
                _worksheet.SetColumnWidth(7, 14 * 256);
                _worksheet.SetColumnWidth(8, 14 * 256);
                _worksheet.SetColumnWidth(9, 14 * 256);
                _worksheet.SetColumnWidth(10, 14 * 256);
                _worksheet.SetColumnWidth(11, 14 * 256);
                _worksheet.SetColumnWidth(12, 14 * 256);
                _worksheet.SetColumnWidth(13, 14 * 256);
                _worksheet.SetColumnWidth(14, 15 * 256);
                _worksheet.SetColumnWidth(15, 30 * 256);

                //_worksheet.Workbook.SetPrintArea(_worksheet
                _worksheet.PrintSetup.Landscape = true;
                _worksheet.PrintSetup.FitWidth  = (short)1;

                _worksheet.SetMargin(NPOI.SS.UserModel.MarginType.TopMargin, (double)0);
                _worksheet.SetMargin(NPOI.SS.UserModel.MarginType.BottomMargin, (double)0);
                _worksheet.SetMargin(NPOI.SS.UserModel.MarginType.LeftMargin, (double)0);
                _worksheet.SetMargin(NPOI.SS.UserModel.MarginType.RightMargin, (double)0);

                _worksheet.PrintSetup.HeaderMargin = (double)0;
                _worksheet.PrintSetup.FooterMargin = (double)0;
            }
        }
Пример #17
0
        public static DataSet parse(string ExcelFilePath, string ZipPassword, string FirstColumnName)
        {
            //OleDbConnection cnnxls = null;
            DataSet ds = new DataSet();

            if (System.IO.Path.GetExtension(ExcelFilePath).Equals(".zip", StringComparison.CurrentCultureIgnoreCase))
            {
                string strTmpFolder = ExcelFilePath + ".dir";

                try
                {
                    zip.ExtractAll(ExcelFilePath, strTmpFolder, ZipPassword);
                    System.IO.DirectoryInfo rootDir = new System.IO.DirectoryInfo(strTmpFolder);
                    foreach (System.IO.FileInfo fileInfo in rootDir.GetFiles("*", System.IO.SearchOption.AllDirectories))
                    {
                        ds.Merge(parse(fileInfo.FullName, ZipPassword, FirstColumnName));
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    System.IO.Directory.Delete(strTmpFolder, true);
                }
                //string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strTmpFolder + ";Extended Properties=\"text;HDR=YES;IMEX=1;FMT=Delimited;\"";
                //cnnxls = new OleDbConnection(strConn);
                //cnnxls.Open();
            }
            else if (System.IO.Path.GetExtension(ExcelFilePath).Equals(".csv", StringComparison.CurrentCultureIgnoreCase))
            {
                System.IO.FileInfo fileInfo = new System.IO.FileInfo(ExcelFilePath);
                DataTable          table    = CSVReader.parse(fileInfo.OpenRead(), true, ",", "\"");
                table.TableName = System.IO.Path.GetFileNameWithoutExtension(fileInfo.FullName);
                ds.Tables.Add(table);
            }
            else
            {
                NPOI.HSSF.UserModel.HSSFWorkbook workBook = new NPOI.HSSF.UserModel.HSSFWorkbook(new System.IO.FileStream(ExcelFilePath, System.IO.FileMode.Open)); // ExcelLibrary.SpreadSheet.Workbook.Load(Filename);

                for (int sheetIndex = 0; sheetIndex < workBook.NumberOfSheets; sheetIndex++)
                {
                    if (!workBook.IsSheetHidden(sheetIndex))
                    {
                        int intHeaderRow = 0;
                        NPOI.HSSF.UserModel.HSSFSheet workSheet = (NPOI.HSSF.UserModel.HSSFSheet)workBook.GetSheetAt(sheetIndex);
                        NPOI.HSSF.UserModel.HSSFRow   headerRow = null; //= (NPOI.HSSF.UserModel.HSSFRow)workSheet.GetRow(intHeaderRow);

                        if (!string.IsNullOrEmpty(FirstColumnName))
                        {
                            for (int tmpRowIdx = intHeaderRow; tmpRowIdx <= workSheet.LastRowNum; tmpRowIdx++)
                            {
                                headerRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.GetRow(tmpRowIdx);
                                if (headerRow == null)
                                {
                                    continue;
                                }
                                bool columnNameMatch = false;
                                for (int tmpColumnIndex = 0; tmpColumnIndex <= headerRow.LastCellNum; tmpColumnIndex++)
                                {
                                    if (headerRow.GetCell(tmpColumnIndex) != null)
                                    {
                                        string columnName = headerRow.GetCell(tmpColumnIndex).ToString().Trim();
                                        if (FirstColumnName.Equals(columnName))
                                        {
                                            intHeaderRow    = tmpRowIdx;
                                            columnNameMatch = true;
                                            break;
                                        }
                                    }
                                }
                                if (columnNameMatch)
                                {
                                    break;
                                }
                            }
                        }
                        else
                        {
                            headerRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.GetRow(intHeaderRow);
                        }

                        if (headerRow == null)
                        {
                            continue;
                        }
                        string    tableName      = workSheet.SheetName.Trim();
                        DataTable table          = new DataTable(tableName);
                        int       intColumnIndex = 0;
                        while (intColumnIndex <= headerRow.LastCellNum)
                        {
                            if (headerRow.GetCell(intColumnIndex) != null)
                            {
                                string columnName = headerRow.GetCell(intColumnIndex).ToString().Trim();
                                if (string.IsNullOrEmpty(columnName))
                                {
                                    columnName = "Column_" + intColumnIndex;
                                }
                                if (table.Columns.Contains(columnName))
                                {
                                    columnName = "Column_" + intColumnIndex;
                                }
                                table.Columns.Add(columnName, typeof(string));

                                //  resign new value of column name to Excel for below part of import
                                headerRow.GetCell(intColumnIndex).SetCellValue(columnName);
                            }
                            intColumnIndex++;
                        }
                        int rowCount = 1;

                        while (intHeaderRow + rowCount <= workSheet.LastRowNum)
                        {
                            int colCount = 0;

                            NPOI.HSSF.UserModel.HSSFRow row = (NPOI.HSSF.UserModel.HSSFRow)workSheet.GetRow(intHeaderRow + rowCount);
                            if (row == null)
                            {
                                rowCount++;
                                continue;
                            }

                            DataRow dataRow = table.NewRow();

                            while (colCount <= headerRow.LastCellNum)
                            {
                                if (headerRow.GetCell(colCount) != null)
                                {
                                    string columnName = headerRow.GetCell(colCount).ToString();
                                    if (table.Columns.Contains(columnName))
                                    {
                                        NPOI.HSSF.UserModel.HSSFCell cell = (NPOI.HSSF.UserModel.HSSFCell)row.GetCell(colCount);
                                        if (cell != null)
                                        {
                                            if (cell.CellType.Equals(NPOI.SS.UserModel.CellType.FORMULA))
                                            {
                                                NPOI.HSSF.UserModel.HSSFFormulaEvaluator e = new NPOI.HSSF.UserModel.HSSFFormulaEvaluator(workBook);
                                                cell = (NPOI.HSSF.UserModel.HSSFCell)e.EvaluateInCell(cell);
                                            }
                                            string fieldValue = cell.ToString();
                                            if (cell.CellType.Equals(NPOI.SS.UserModel.CellType.NUMERIC))
                                            {
                                                string format = string.Empty;
                                                //bool IsBuildinformat = false;
                                                //  Not sure whether workBook.CreateDataFormat().GetFormat(index) can obtain all the build-in format
                                                try
                                                {
                                                    format = NPOI.HSSF.UserModel.HSSFDataFormat.GetBuiltinFormat(cell.CellStyle.DataFormat);
                                                    //IsBuildinformat = true;
                                                }
                                                catch
                                                {
                                                    format = workBook.CreateDataFormat().GetFormat(cell.CellStyle.DataFormat);
                                                }

                                                //  [h]:mm:ss handle NOT support
                                                int midBlanketStartPos = format.IndexOf('[');
                                                while (midBlanketStartPos >= 0)
                                                {
                                                    int midBlanketEndPos = format.IndexOf(']', midBlanketStartPos);
                                                    format             = format.Substring(0, midBlanketStartPos) + format.Substring(midBlanketStartPos + 1, midBlanketEndPos - midBlanketStartPos - 1) + format.Substring(midBlanketEndPos + 1);
                                                    midBlanketStartPos = format.IndexOf('[');
                                                }

                                                if (format.IndexOf("y", StringComparison.CurrentCultureIgnoreCase) >= 0 || format.IndexOf("d", StringComparison.CurrentCultureIgnoreCase) >= 0)
                                                {
                                                    if (format.IndexOf("h", StringComparison.CurrentCultureIgnoreCase) >= 0)
                                                    {
                                                        fieldValue = cell.DateCellValue.ToString("yyyy-MM-dd HH:mm:ss");
                                                    }
                                                    else
                                                    {
                                                        DateTime date = cell.DateCellValue;
                                                        if (date.TimeOfDay.TotalSeconds > 0)
                                                        {
                                                            fieldValue = date.ToString("yyyy-MM-dd HH:mm:ss");
                                                        }
                                                        else
                                                        {
                                                            fieldValue = date.ToString("yyyy-MM-dd");
                                                        }
                                                    }
                                                }
                                                else if (format.IndexOf("h", StringComparison.CurrentCultureIgnoreCase) >= 0)
                                                {
                                                    DateTime date = cell.DateCellValue;

                                                    //  default date of "Time Only" field is 1899-12-31
                                                    if (!date.Date.Ticks.Equals(new DateTime(1899, 12, 31).Ticks))
                                                    {
                                                        fieldValue = cell.DateCellValue.ToString("yyyy-MM-dd HH:mm:ss");
                                                    }
                                                    else
                                                    {
                                                        fieldValue = cell.DateCellValue.ToString("HH:mm:ss");
                                                    }
                                                }
                                                else
                                                {
                                                    fieldValue = cell.NumericCellValue.ToString();
                                                }
                                            }
                                            dataRow[columnName] = fieldValue;
                                        }
                                    }
                                }


                                colCount++;
                            }
                            table.Rows.Add(dataRow);
                            rowCount++;
                        }
                        ds.Tables.Add(table);
                    }
                }

                //string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ExcelFilePath + ";Extended Properties=\"Excel 12.0 Xml;IMEX=1;HDR=YES;\"";
                //cnnxls = new OleDbConnection(strConn);
                //try
                //{
                //    cnnxls.Open();
                //}
                //catch
                //{
                //    cnnxls.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExcelFilePath + ";Extended Properties=\"Excel 8.0;IMEX=1;HDR=YES;\"";
                //    cnnxls.Open();
                //}


                //DataTable schemaTable = cnnxls.GetSchema("Tables");


                //foreach (DataRow schemaRow in schemaTable.Rows)
                //{
                //    string tableName = schemaRow["Table_Name"].ToString().Trim();
                //    if (tableName.EndsWith("$"))
                //    {
                //        OleDbDataAdapter oda = new OleDbDataAdapter("select * from [" + tableName + "]", cnnxls);
                //        try
                //        {


                //            //DataTable[] tables = oda.FillSchema(ds, SchemaType.Mapped);//
                //            //tables[0].TableName = schemaRow["Table_Name"].ToString().Replace("$", "").Replace("#csv", "");
                //            //if (tables[0].Columns.Contains("Emp No*"))
                //            //    tables[0].Columns["Emp No*"].DataType = typeof(string);
                //            //OleDbDataReader dr = oda.SelectCommand.ExecuteReader();

                //            //while (dr.Read())
                //            //{
                //            //    DataRow row = tables[0].NewRow();
                //            //    for (int i = 0; i < tables[0].Columns.Count; i++)
                //            //        row[i] = dr[i];
                //            //    tables[0].Rows.Add(row);
                //            //}
                //            ////                    oda.Fill(tables[0]);
                //            //if (ds.Tables.Contains(tableName) && tableName.ToString().EndsWith("$"))
                //            //    ds.Tables.Remove(tableName);
                //            string actualTableName = tableName.Substring(0, tableName.Length - 1);
                //            if (!ds.Tables.Contains(actualTableName))
                //                oda.Fill(ds, actualTableName);
                //        }
                //        catch
                //        {
                //            //  unknown error caused by hidden sheet
                //        }
                //        //                oda.Fill(ds);
                //    }
                //}

                //cnnxls.Close();
            }
            foreach (DataTable tempTable in ds.Tables)
            {
                for (int rowIdx = tempTable.Rows.Count - 1; rowIdx >= 0; rowIdx--)
                {
                    DataRow row        = tempTable.Rows[rowIdx];
                    bool    isEmptyRow = true;
                    foreach (DataColumn tempColumn in tempTable.Columns)
                    {
                        if (!row.IsNull(tempColumn))
                        {
                            if (!string.IsNullOrEmpty(row[tempColumn].ToString().Trim()))
                            {
                                isEmptyRow = false;
                                break;
                            }
                        }
                    }
                    if (isEmptyRow)
                    {
                        tempTable.Rows.Remove(row);
                    }
                    else
                    {
                        break;
                    }
                }
            }
            foreach (DataTable tempTable in ds.Tables)
            {
                foreach (DataColumn tempColumn in tempTable.Columns)
                {
                    string tempColumnName = tempColumn.ColumnName;
                    tempColumnName        = tempColumnName.Trim().Replace("*", "");
                    tempColumnName        = tempColumnName.Trim().Replace("#", "");
                    tempColumn.ColumnName = tempColumnName;
                }
            }
            return(ds);
        }
Пример #18
0
        protected override void GenerateWorkbookDetail(NPOI.HSSF.UserModel.HSSFWorkbook workBook, System.Data.DataSet dataSet)
        {
            NPOI.HSSF.UserModel.HSSFSheet workSheet = (NPOI.HSSF.UserModel.HSSFSheet)workBook.CreateSheet("Payroll Allocation Report - Detail");

            ushort rowPos = 0;

            DataTable empInfoTable          = dataSet.Tables["EmpInfo"];
            DataTable paymentTable          = dataSet.Tables["payment"];
            DataTable costCenterDetailTable = dataSet.Tables["CostCenterDetail"];
            DataTable hierarchyTable        = dataSet.Tables["hierarchy"];
            DataTable payPeriodTable        = dataSet.Tables["payPeriod"];

            DataTable hierarchyTotalTable = new DataTable("HierarchyTotal");    // use for calculate local hierarchy total

            hierarchyTotalTable.Columns.Add("company", typeof(string));
            hierarchyTotalTable.Columns.Add("LevelDesc", typeof(string));
            hierarchyTotalTable.Columns.Add("payPeriodFr", typeof(DateTime));
            hierarchyTotalTable.Columns.Add("ee", typeof(double));
            hierarchyTotalTable.Columns.Add("er", typeof(double));
            hierarchyTotalTable.Columns.Add("netAmount", typeof(double));

            NPOI.HSSF.UserModel.HSSFFont boldFont = (NPOI.HSSF.UserModel.HSSFFont)workBook.CreateFont();
            boldFont.Boldweight = 700;

            NPOI.HSSF.UserModel.HSSFCellStyle reportHeaderStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle();
            reportHeaderStyle.SetFont(boldFont);
            reportHeaderStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.LEFT;

            NPOI.HSSF.UserModel.HSSFCellStyle groupHeaderStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle();
            groupHeaderStyle.SetFont(boldFont);

            NPOI.HSSF.UserModel.HSSFCellStyle monthHeaderStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle();
            monthHeaderStyle.SetFont(boldFont);
            monthHeaderStyle.DataFormat = workBook.CreateDataFormat().GetFormat("MMM-yyyy");
            monthHeaderStyle.Alignment  = NPOI.SS.UserModel.HorizontalAlignment.CENTER;

            NPOI.HSSF.UserModel.HSSFCellStyle columnHeaderStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle();
            columnHeaderStyle.SetFont(boldFont);
            columnHeaderStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.THIN;

            NPOI.HSSF.UserModel.HSSFCellStyle detailNumberStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle();
            detailNumberStyle.DataFormat = workBook.CreateDataFormat().GetFormat("#,##0.00;(#,##0.00)");
            detailNumberStyle.Alignment  = NPOI.SS.UserModel.HorizontalAlignment.RIGHT;

            NPOI.HSSF.UserModel.HSSFCellStyle detailTextStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle();
            detailTextStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.LEFT;

            NPOI.HSSF.UserModel.HSSFCellStyle subTotalStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workBook.CreateCellStyle();
            subTotalStyle.DataFormat = workBook.CreateDataFormat().GetFormat("#,##0.00;(#,##0.00)");
            subTotalStyle.BorderTop  = NPOI.SS.UserModel.BorderStyle.THIN;

            DataRow[] EmpInfoRows = dataSet.Tables["EmpInfo"].Select("", "Company, " + empInfoTable.Columns[hierarchyLevelGroupingFieldName].ColumnName + ", Employee No.");

            string currentCompany        = "#$%@$@#$"; //string.Empty;
            string currentHierarchyGroup = string.Empty;
            string currentEmployeeNo     = string.Empty;
            string tmpCompany            = "";
            string tmpHierarchy          = "";
            string tmpEmployeeNo         = "";
            ushort groupRowCount         = 0;
            bool   sectionEnded          = false;


            if (bolShowIndividual == true)
            {
                summaryStart = Convert.ToUInt16(4 + hierarchyTable.Rows.Count);
            }
            else
            {
                summaryStart = 1;
            }
            reportEndCol = Convert.ToUInt16(summaryStart + (payPeriodTable.Rows.Count * 4) - 1);

            foreach (DataRow EmpInfoRow in EmpInfoRows)
            {
                tmpCompany    = EmpInfoRow["Company"].ToString();
                tmpEmployeeNo = EmpInfoRow["Employee No."].ToString();
                tmpHierarchy  = EmpInfoRow[hierarchyLevelGroupingFieldName].ToString();

                if (EmpInfoRows[0] == EmpInfoRow)
                {
                    currentHierarchyGroup = tmpHierarchy;
                    currentCompany        = tmpCompany;

                    rowPos = GenerateHeader(workSheet, PeriodFrom, PeriodTo, rowPos, reportHeaderStyle, groupHeaderStyle);
                    rowPos = GenerateCompanyHeader(workSheet, dataSet, tmpCompany, rowPos, groupHeaderStyle);
                    rowPos++;
                    rowPos = GenerateColumnHeader(workSheet, dataSet, hierarchyLevelGroupingFieldName, rowPos, groupHeaderStyle, monthHeaderStyle, columnHeaderStyle);
                }

                sectionEnded = (!currentHierarchyGroup.Equals(tmpHierarchy, StringComparison.CurrentCultureIgnoreCase) ||
                                !currentCompany.Equals(tmpCompany, StringComparison.CurrentCultureIgnoreCase));

                if (sectionEnded)
                {
                    if (bolShowIndividual == true)
                    {
                        // print hirarchy total if show employee detail
                        rowPos  = GenerateHierarchyTotal(workSheet, rowPos, subTotalStyle, groupRowCount);
                        rowPos += 2;
                    }
                    else
                    {
                        // just print hierarchy line (i.e. not subtotal) if employee detail not shown
                        ushort colPos = 0;
                        NPOI.HSSF.UserModel.HSSFRow  sheetRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow((int)rowPos);
                        NPOI.HSSF.UserModel.HSSFCell cell     = (NPOI.HSSF.UserModel.HSSFCell)sheetRow.CreateCell((int)colPos);

                        cell = (NPOI.HSSF.UserModel.HSSFCell)sheetRow.CreateCell(colPos);
                        cell.SetCellValue(currentHierarchyGroup);
                        cell.CellStyle = detailTextStyle;
                        colPos++;

                        foreach (DataRow m_hiearchyTotalRow in hierarchyTotalTable.Select("LevelDesc = '" + currentHierarchyGroup + "' ", "payPeriodFr"))
                        {
                            cell = (NPOI.HSSF.UserModel.HSSFCell)sheetRow.CreateCell(colPos);
                            cell.SetCellValue((double)m_hiearchyTotalRow["EE"]);
                            cell.CellStyle = detailNumberStyle;
                            colPos++;

                            cell = (NPOI.HSSF.UserModel.HSSFCell)sheetRow.CreateCell(colPos);
                            cell.SetCellValue((double)m_hiearchyTotalRow["netAmount"]);
                            cell.CellStyle = detailNumberStyle;
                            colPos++;

                            cell = (NPOI.HSSF.UserModel.HSSFCell)sheetRow.CreateCell(colPos);
                            cell.SetCellValue((double)m_hiearchyTotalRow["ER"]);
                            cell.CellStyle = detailNumberStyle;
                            colPos++;

                            cell             = (NPOI.HSSF.UserModel.HSSFCell)sheetRow.CreateCell(colPos);
                            cell.CellFormula = "SUM(" + ToCellString(rowPos, colPos - 3) + ":" + ToCellString(rowPos, colPos - 1) + ")";
                            cell.CellStyle   = detailNumberStyle;
                            colPos++;
                        }
                        rowPos++;
                        groupRowCount++;
                    }

                    if (!currentCompany.Equals(tmpCompany, StringComparison.CurrentCultureIgnoreCase))
                    {
                        if (bolShowIndividual == true)
                        {
                            // print company header and column header for new company (in show-employee mode)
                            rowPos = GenerateCompanyHeader(workSheet, dataSet, tmpCompany, rowPos, groupHeaderStyle);
                            rowPos++;
                            rowPos = GenerateColumnHeader(workSheet, dataSet, hierarchyLevelGroupingFieldName, rowPos, groupHeaderStyle, monthHeaderStyle, columnHeaderStyle);
                        }
                        else
                        {
                            // print a summary for previous company (in hide employee info mode)
                            rowPos  = GenerateHierarchyTotal(workSheet, rowPos, subTotalStyle, groupRowCount);
                            rowPos += 2;
                            rowPos  = GenerateCompanyHeader(workSheet, dataSet, tmpCompany, rowPos, groupHeaderStyle);
                            rowPos++;
                            rowPos = GenerateColumnHeader(workSheet, dataSet, hierarchyLevelGroupingFieldName, rowPos, groupHeaderStyle, monthHeaderStyle, columnHeaderStyle);
                        }
                        currentCompany        = tmpCompany;
                        currentHierarchyGroup = tmpHierarchy;
                        groupRowCount         = 0;

                        // print company information for new company
                    }
                    else if (!currentHierarchyGroup.Equals(tmpHierarchy, StringComparison.CurrentCultureIgnoreCase))
                    {
                        if (bolShowIndividual == true)
                        {
                            rowPos        = GenerateColumnHeader(workSheet, dataSet, hierarchyLevelGroupingFieldName, rowPos, groupHeaderStyle, monthHeaderStyle, columnHeaderStyle);
                            groupRowCount = 0;
                        }
                        else
                        {
                        }
                        currentHierarchyGroup = tmpHierarchy;
                    }

                    hierarchyTotalTable.Clear();
                }

                if (bolShowIndividual == true)
                {
                    groupRowCount++;

                    NPOI.HSSF.UserModel.HSSFRow  m_sheetRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow(rowPos);
                    NPOI.HSSF.UserModel.HSSFCell cell;
                    ushort colPos = 0;

                    // Employee Number
                    cell = (NPOI.HSSF.UserModel.HSSFCell)m_sheetRow.CreateCell(colPos);
                    cell.SetCellValue(EmpInfoRow["Employee No."].ToString());
                    cell.CellStyle = detailTextStyle;
                    colPos++;

                    // Employee Name
                    cell = (NPOI.HSSF.UserModel.HSSFCell)m_sheetRow.CreateCell(colPos);
                    cell.SetCellValue(EmpInfoRow["Employee Name"].ToString());
                    cell.CellStyle = detailTextStyle;
                    colPos++;

                    // Alias
                    cell = (NPOI.HSSF.UserModel.HSSFCell)m_sheetRow.CreateCell(colPos);
                    cell.SetCellValue(EmpInfoRow["Alias"].ToString());
                    cell.CellStyle = detailTextStyle;
                    colPos++;

                    // Chinese Name
                    cell = (NPOI.HSSF.UserModel.HSSFCell)m_sheetRow.CreateCell(colPos);
                    cell.SetCellValue(EmpInfoRow["Chinese Name"].ToString());
                    cell.CellStyle = detailTextStyle;
                    colPos++;

                    // hierarchy
                    foreach (DataRow m_hierarchyRow in hierarchyTable.Rows)
                    {
                        cell = (NPOI.HSSF.UserModel.HSSFCell)m_sheetRow.CreateCell(colPos);
                        cell.SetCellValue(EmpInfoRow[m_hierarchyRow["LevelDesc"].ToString()].ToString());
                        cell.CellStyle = detailTextStyle;
                        colPos++;
                    }

                    foreach (DataRow m_payPeriodRow in payPeriodTable.Rows)
                    {
                        //DBFilter m_paymentFilter = new DBFilter();
                        //m_paymentFilter.add(new Match("payPeriodFr", m_payPeriodRow["payPeriodFr"]));
                        //m_paymentFilter.add(new Match("EmpID", row["EmpID"]));

                        double m_er        = 0;
                        double m_ee        = 0;
                        double m_netAmount = 0;
                        foreach (DataRow m_paymentRow in paymentTable.Select("payPeriodFr='" + ((DateTime)m_payPeriodRow["payPeriodFr"]).ToString("yyyy-MM-dd") + "' AND " +
                                                                             "EmpID=" + EmpInfoRow["EmpID"].ToString()))
                        {
                            m_ee        += (double)m_paymentRow["EE"];
                            m_er        += (double)m_paymentRow["ER"];
                            m_netAmount += (double)m_paymentRow["netAmount"];
                        }

                        cell = (NPOI.HSSF.UserModel.HSSFCell)m_sheetRow.CreateCell(colPos);
                        cell.SetCellValue(m_ee);
                        cell.CellStyle = detailNumberStyle;
                        colPos++;

                        cell = (NPOI.HSSF.UserModel.HSSFCell)m_sheetRow.CreateCell(colPos);
                        cell.SetCellValue(m_netAmount);
                        cell.CellStyle = detailNumberStyle;
                        colPos++;

                        cell = (NPOI.HSSF.UserModel.HSSFCell)m_sheetRow.CreateCell(colPos);
                        cell.SetCellValue(m_er);
                        cell.CellStyle = detailNumberStyle;
                        colPos++;

                        cell             = (NPOI.HSSF.UserModel.HSSFCell)m_sheetRow.CreateCell(colPos);
                        cell.CellFormula = "SUM(" + ToCellString(rowPos, colPos - 3) + ":" + ToCellString(rowPos, colPos - 1) + ")";
                        cell.CellStyle   = detailNumberStyle;
                        colPos++;
                    }
                    rowPos++;
                }
                else
                {
                    foreach (DataRow m_payPeriodRow in payPeriodTable.Rows)
                    {
                        if (tmpCompany == "Magazines International (Asia) Limited - SALES" && tmpHierarchy == "Sales Division")
                        {
                            double m_trash = 0;
                        }

                        double m_er        = 0;
                        double m_ee        = 0;
                        double m_netAmount = 0;
                        foreach (DataRow m_paymentRow in paymentTable.Select("payPeriodFr='" + ((DateTime)m_payPeriodRow["payPeriodFr"]).ToString("yyyy-MM-dd") + "' AND " +
                                                                             "EmpID=" + EmpInfoRow["EmpID"].ToString()))
                        {
                            m_ee        += (double)m_paymentRow["EE"];
                            m_er        += (double)m_paymentRow["ER"];
                            m_netAmount += (double)m_paymentRow["netAmount"];
                        }

                        // find from local HierarchyTotal table and add the new employee amounts
                        DataRow[] m_hierarchyTotalRows = hierarchyTotalTable.Select("payPeriodFr='" + ((DateTime)m_payPeriodRow["payPeriodFr"]).ToString("yyyy-MM-dd") + "' AND " +
//                                                                                    "Company='" + tmpCompany + "' AND " +
                                                                                    "LevelDesc='" + tmpHierarchy + "' ");
                        if (m_hierarchyTotalRows.Length > 0)
                        {
                            m_hierarchyTotalRows[0]["EE"]        = (double)m_hierarchyTotalRows[0]["EE"] + m_ee;
                            m_hierarchyTotalRows[0]["ER"]        = (double)m_hierarchyTotalRows[0]["ER"] + m_er;
                            m_hierarchyTotalRows[0]["netAmount"] = (double)m_hierarchyTotalRows[0]["netAmount"] + m_netAmount;
                        }
                        else
                        {
                            DataRow m_newHierarchyTotal = hierarchyTotalTable.Rows.Add();
                            m_newHierarchyTotal["company"]     = tmpCompany;
                            m_newHierarchyTotal["LevelDesc"]   = tmpHierarchy;
                            m_newHierarchyTotal["payPeriodFr"] = (DateTime)m_payPeriodRow["payPeriodFr"];
                            m_newHierarchyTotal["EE"]          = m_ee;
                            m_newHierarchyTotal["ER"]          = m_er;
                            m_newHierarchyTotal["netAmount"]   = m_netAmount;
                        }
                    }
                }
            }

            // insert last hierarchy total
            if (bolShowIndividual == true)
            {
                rowPos = GenerateHierarchyTotal(workSheet, rowPos, subTotalStyle, groupRowCount);
            }
            else
            {
                NPOI.HSSF.UserModel.HSSFRow  m_sheetRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow((int)rowPos);
                NPOI.HSSF.UserModel.HSSFCell cell       = (NPOI.HSSF.UserModel.HSSFCell)m_sheetRow.CreateCell(0);
                ushort colPos = 0;

                cell = (NPOI.HSSF.UserModel.HSSFCell)m_sheetRow.CreateCell(colPos);
                cell.SetCellValue(tmpHierarchy);
                cell.CellStyle = detailTextStyle;
                colPos++;

                foreach (DataRow m_hiearchyTotalRow in hierarchyTotalTable.Select("LevelDesc = '" + tmpHierarchy + "' ", "payPeriodFr"))
                {
                    cell = (NPOI.HSSF.UserModel.HSSFCell)m_sheetRow.CreateCell(colPos);
                    cell.SetCellValue((double)m_hiearchyTotalRow["EE"]);
                    cell.CellStyle = detailNumberStyle;
                    colPos++;

                    cell = (NPOI.HSSF.UserModel.HSSFCell)m_sheetRow.CreateCell(colPos);
                    cell.SetCellValue((double)m_hiearchyTotalRow["netAmount"]);
                    cell.CellStyle = detailNumberStyle;
                    colPos++;

                    cell = (NPOI.HSSF.UserModel.HSSFCell)m_sheetRow.CreateCell(colPos);
                    cell.SetCellValue((double)m_hiearchyTotalRow["ER"]);
                    cell.CellStyle = detailNumberStyle;
                    colPos++;

                    cell             = (NPOI.HSSF.UserModel.HSSFCell)m_sheetRow.CreateCell(colPos);
                    cell.CellFormula = "SUM(" + ToCellString(rowPos, colPos - 3) + ":" + ToCellString(rowPos, colPos - 1) + ")";
                    cell.CellStyle   = detailNumberStyle;
                    colPos++;
                }
                groupRowCount++;
                rowPos++;
                rowPos = GenerateHierarchyTotal(workSheet, rowPos, subTotalStyle, groupRowCount);
            }

            for (int i = 0; i <= reportEndCol; i++)
            {
                if (i < summaryStart)
                {
                    workSheet.SetColumnWidth(i, 15 * 254);
                }
                else
                {
                    workSheet.SetColumnWidth(i, 14 * 254);
                }
            }
        }
Пример #19
0
        public override DataTable UploadToTempDatabase(string Filename, int UserID, string ZipPassword)
        {
            ClearTempTable();

            NPOI.HSSF.UserModel.HSSFWorkbook workBook  = new NPOI.HSSF.UserModel.HSSFWorkbook(new System.IO.FileStream(Filename, System.IO.FileMode.Open)); // ExcelLibrary.SpreadSheet.Workbook.Load(Filename);
            NPOI.HSSF.UserModel.HSSFSheet    workSheet = null;

            //foreach (ExcelLibrary.SpreadSheet.Worksheet tmpWorkSheet in workBook.Worksheets)
            //{
            //    if (tmpWorkSheet.Name.Trim().Equals("RosterTable"))
            //    {
            //        workSheet = tmpWorkSheet;
            //        break;
            //    }
            //}
            try
            {
                workSheet = (NPOI.HSSF.UserModel.HSSFSheet)workBook.GetSheet("RosterTable");
                if (workSheet == null)
                {
                    workSheet = (NPOI.HSSF.UserModel.HSSFSheet)workBook.GetSheetAt(0);
                }
            }
            catch
            {
                if (workSheet == null)
                {
                    workSheet = (NPOI.HSSF.UserModel.HSSFSheet)workBook.GetSheetAt(0);
                }
            }
            if (workSheet.GetRow(ROW_YEAR).GetCell(0).StringCellValue.Trim().StartsWith("Year", StringComparison.CurrentCultureIgnoreCase))
            {
                if (workSheet.GetRow(ROW_YEAR).GetCell(1).CellType.Equals(NPOI.SS.UserModel.CellType.NUMERIC))
                {
                    m_importYear = Convert.ToInt32(workSheet.GetRow(ROW_YEAR).GetCell(1).NumericCellValue);
                }
                else
                {
                    errors.addError("Invalid Year", null);
                }
            }
            if (workSheet.GetRow(ROW_MONTH).GetCell(0).StringCellValue.Trim().StartsWith("Month", StringComparison.CurrentCultureIgnoreCase))
            {
                if (workSheet.GetRow(ROW_MONTH).GetCell(1).CellType.Equals(NPOI.SS.UserModel.CellType.NUMERIC))
                {
                    m_importMonth = Convert.ToInt32(workSheet.GetRow(ROW_MONTH).GetCell(1).NumericCellValue);
                }
                else
                {
                    errors.addError("Invalid Month", null);
                }

                //if (!int.TryParse(workSheet.GetRow(1).GetCell(1).StringCellValue.Trim(), out m_importMonth))
                //    errors.addError("Invalid Month", null);
            }

            if (errors.List.Count > 0)
            {
                throw (new HRImportException(errors.Message()));
            }

            int intHeaterRow = ROW_CALENDAR_HEADER;
            int intEmpColumn = 0;

            ArrayList results  = new ArrayList();
            int       rowCount = 1;

            NPOI.HSSF.UserModel.HSSFRow headerRow = (NPOI.HSSF.UserModel.HSSFRow)workSheet.GetRow(intHeaterRow);

            while (intEmpColumn <= headerRow.LastCellNum)
            {
                if (headerRow.GetCell(intEmpColumn) != null)
                {
                    if (headerRow.GetCell(intEmpColumn).StringCellValue.Trim().Equals(FIELD_EMP_NO, StringComparison.CurrentCultureIgnoreCase))
                    {
                        break;
                    }
                }
                intEmpColumn++;
            }
            if (intEmpColumn > headerRow.LastCellNum)
            {
                //  do exception
            }

            int intEmptyEmpNoCount = 0;

            try
            {
                while (intHeaterRow + rowCount <= workSheet.LastRowNum)
                {
                    int    EmpID    = 0;
                    string EmpNo    = string.Empty;
                    int    colCount = 0;

                    NPOI.HSSF.UserModel.HSSFRow row = (NPOI.HSSF.UserModel.HSSFRow)workSheet.GetRow(intHeaterRow + rowCount);
                    if (row == null)
                    {
                        rowCount++;
                        intEmptyEmpNoCount++;
                        continue;
                    }
                    if (row.GetCell(intEmpColumn) == null)
                    {
                        rowCount++;
                        intEmptyEmpNoCount++;
                        continue;
                    }

                    EmpNo = row.GetCell(intEmpColumn).ToString().Trim();

                    if (string.IsNullOrEmpty(EmpNo))
                    {
                        rowCount++;
                        intEmptyEmpNoCount++;
                        continue;
                    }

                    intEmptyEmpNoCount = 0;
                    EmpID = Import.Parse.GetEmpID(dbConn, EmpNo, UserID);
                    if (EmpID < 0)
                    {
                        errors.addError(ImportErrorMessage.ERROR_ACCESS_DENIED_EMP_NO, new string[] { EmpNo, rowCount.ToString() });
                    }
                    else if (EmpID == 0)
                    {
                        errors.addError(ImportErrorMessage.ERROR_INVALID_EMP_NO, new string[] { EmpNo, rowCount.ToString() });
                    }
                    colCount = intEmptyEmpNoCount + 1;
                    int lastImportDay   = 0;
                    int intCurrentMonth = m_importMonth;
                    int intCurrentYear  = m_importYear;
                    while (colCount < headerRow.LastCellNum)
                    {
                        if (headerRow.GetCell(colCount) == null)
                        {
                            if (lastImportDay <= 0)
                            {
                                colCount++;
                                continue;
                            }
                            else
                            {
                                break;
                            }
                        }
                        if (headerRow.GetCell(colCount).CellType.Equals(NPOI.SS.UserModel.CellType.NUMERIC))
                        {
                            int day = Convert.ToInt32(headerRow.GetCell(colCount).NumericCellValue);
                            if (day > 0 && day <= DateTime.DaysInMonth(intCurrentYear, intCurrentMonth))
                            {
                                if (lastImportDay > day)
                                {
                                    intCurrentMonth++;
                                    if (intCurrentMonth > 12)
                                    {
                                        intCurrentMonth = 1;
                                        intCurrentYear++;
                                    }
                                }
                                lastImportDay = day;

                                string RosterCode;
                                if (row.GetCell(colCount) != null)
                                {
                                    RosterCode = row.GetCell(colCount).ToString().Trim();
                                }
                                else
                                {
                                    RosterCode = string.Empty;
                                }

                                EUploadRosterTable uploadRosterTable = new EUploadRosterTable();
                                uploadRosterTable.EmpID           = EmpID;
                                uploadRosterTable.RosterTableDate = new DateTime(intCurrentYear, intCurrentMonth, day);
                                DateTime inTime, outTime;
                                uploadRosterTable.RosterCodeID = Import.Parse.GetRosterCodeID(dbConn, RosterCode, out inTime, out outTime);
                                if (!inTime.Ticks.Equals(0))
                                {
                                    uploadRosterTable.RosterTableOverrideInTime = inTime;
                                }
                                if (!outTime.Ticks.Equals(0))
                                {
                                    uploadRosterTable.RosterTableOverrideOutTime = outTime;
                                }
                                uploadRosterTable.SessionID          = m_SessionID;
                                uploadRosterTable.TransactionDate    = UploadDateTime;
                                uploadRosterTable.ImportActionStatus = ImportDBObject.ImportActionEnum.UPDATE;
                                if (uploadRosterTable.RosterCodeID <= 0 && !string.IsNullOrEmpty(RosterCode))
                                {
                                    errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { RosterCode, EmpNo, rowCount.ToString() });
                                }
                                else
                                {
                                    EUploadRosterTable.db.insert(dbConn, uploadRosterTable);
                                }
                            }
                        }

                        colCount++;
                    }

                    rowCount++;
                }
            }
            catch (Exception e)
            {
                errors.addError(e.Message, null);
            }
            if (errors.List.Count > 0)
            {
                ClearTempTable();
                throw (new HRImportException(errors.Message()));
            }
            return(GetImportDataFromTempDatabase(null));

            //org.in2bits.MyXls.XlsDocument xlsDoc = new org.in2bits.MyXls.XlsDocument(Filename);
            //org.in2bits.MyXls.Worksheet workSheet;

            //try
            //{
            //    workSheet = xlsDoc.Workbook.Worksheets["RosterTable"];

            //}
            //catch
            //{
            //    workSheet = xlsDoc.Workbook.Worksheets[0];
            //}

            //if (workSheet.Rows[1].GetCell(1).Value.ToString().Trim().Equals("Year", StringComparison.CurrentCultureIgnoreCase))
            //{

            //    if (!int.TryParse(workSheet.Rows[1].CellAtCol(2).Value.ToString().Trim(), out m_importYear))
            //        errors.addError("Invalid Year", null);
            //}
            //if (workSheet.Rows[2].GetCell(1).Value.ToString().Trim().Equals("Month", StringComparison.CurrentCultureIgnoreCase))
            //{

            //    if (!int.TryParse(workSheet.Rows[2].CellAtCol(2).Value.ToString().Trim(), out m_importMonth))
            //        errors.addError("Invalid Month", null);
            //}

            //if (errors.List.Count > 0)
            //{
            //    throw (new HRImportException(errors.Message()));
            //}

            //ushort intHeaderRow = 3;


            //ArrayList results = new ArrayList();
            //ushort rowCount = 1;

            //try
            //{
            //    while (intHeaderRow + rowCount <= workSheet.Rows.MaxRow)
            //    {
            //        int EmpID = 0;
            //        string EmpNo = string.Empty;
            //        ushort colCount = 1;
            //        org.in2bits.MyXls.Row row = workSheet.Rows[(ushort)(intHeaderRow + rowCount)];
            //        while (colCount <= row.MaxCellCol)
            //        {
            //            if (workSheet.Rows[intHeaderRow].CellAtCol(colCount).Value.ToString().Trim().Equals(FIELD_EMP_NO, StringComparison.CurrentCultureIgnoreCase))
            //            {
            //                EmpNo = row.CellAtCol(colCount).Value.ToString().Trim();
            //                EmpID = Import.Parse.GetEmpID(dbConn, EmpNo, UserID);
            //                if (EmpID <= 0)
            //                    errors.addError(ImportErrorMessage.ERROR_INVALID_EMP_NO, new string[] { EmpNo, rowCount.ToString() });
            //                break;
            //            }
            //            colCount++;
            //        }

            //        colCount = 1;
            //        while (colCount <= workSheet.Rows[(ushort)(intHeaderRow + rowCount)].MaxCellCol)
            //        {
            //            if (workSheet.Cells .Rows[(ushort)(intHeaderRow)].CellExists(colCount))
            //            {
            //                string RosterCode = string.Empty;
            //                if (workSheet.Rows[(ushort)(intHeaderRow + rowCount)].CellExists(colCount))
            //                    if (workSheet.Rows[(ushort)(intHeaderRow + rowCount)].CellAtCol(colCount).Value != null)
            //                        RosterCode = row.CellAtCol(colCount).Value.ToString().Trim();
            //                int day = 0;
            //                if (int.TryParse(workSheet.Rows[intHeaderRow].GetCell(colCount).Value.ToString().Trim(), out day))
            //                {
            //                    if (day > 0 && day <= DateTime.DaysInMonth(m_importYear, m_importMonth))
            //                    {
            //                        EUploadRosterTable uploadRosterTable = new EUploadRosterTable();
            //                        uploadRosterTable.EmpID = EmpID;
            //                        uploadRosterTable.RosterTableDate = new DateTime(m_importYear, m_importMonth, day);
            //                        uploadRosterTable.RosterCodeID = Import.Parse.*ID(dbConn, RosterCode);
            //                        uploadRosterTable.SessionID = m_SessionID;
            //                        uploadRosterTable.TransactionDate = UploadDateTime;
            //                        uploadRosterTable.ImportActionStatus = ImportDBObject.ImportActionEnum.UPDATE;
            //                        if (uploadRosterTable.RosterCodeID <= 0 && !string.IsNullOrEmpty(RosterCode))
            //                        {
            //                            errors.addError(ImportErrorMessage.ERROR_INVALID_FIELD_VALUE, new string[] { RosterCode, EmpNo, rowCount.ToString() });
            //                        }
            //                        else
            //                            EUploadRosterTable.db.insert(dbConn, uploadRosterTable);
            //                    }
            //                }
            //            }
            //            colCount++;
            //        }

            //        rowCount++;
            //    }
            //}
            //catch (Exception e)
            //{
            //    errors.addError(e.Message, null);
            //}
            //if (errors.List.Count > 0)
            //{
            //    ClearTempTable();
            //    throw (new HRImportException(errors.Message()));
            //}
            //return GetImportDataFromTempDatabase(null);
        }
Пример #20
0
        protected ushort GenerateColumnHeader(NPOI.HSSF.UserModel.HSSFSheet workSheet, System.Data.DataSet dataSet, string CompanyHeader, string HierarchyHeader, ushort RowPos, NPOI.HSSF.UserModel.HSSFCellStyle GroupHeaderStyle, NPOI.HSSF.UserModel.HSSFCellStyle ColumnHeaderStyle)
        {
            DataTable paymentTable = dataSet.Tables["payment"];

            //org.in2bits.MyXls.XF xf = xlsDoc.NewXF();
            //xf.Font.Bold = true;
            //xf.BottomLineStyle = (ushort)1;

            RowPos += 2;
            //workSheet.Cells.Add((int)RowPos, 1, "Company");
            //workSheet.Cells.Add((int)RowPos, 2, CompanyHeader);
            //workSheet.Rows[RowPos].GetCell(1).Font.Bold = true;
            //workSheet.Rows[RowPos].GetCell(2).Font.Bold = true;

            NPOI.HSSF.UserModel.HSSFRow  row  = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow((int)RowPos);
            NPOI.HSSF.UserModel.HSSFCell cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(0);
            cell.SetCellValue("Company");
            cell.CellStyle = GroupHeaderStyle;
            cell           = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(1);
            cell.SetCellValue(CompanyHeader);
            cell.CellStyle = GroupHeaderStyle;

            RowPos += 2;
            //workSheet.Cells.Add((int)RowPos, 1, HierarchyHeader, xf);
            row = (NPOI.HSSF.UserModel.HSSFRow)workSheet.CreateRow((int)RowPos);

            ushort colPos = 0;

            // ***** Start 2013/11/22, Ricky So, grouping for Staff where Employee No is necessary
            if (intHierarchyLevelID == STAFF_LEVEL_ID)
            {
                cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
                cell.SetCellValue("Employee No.");
                cell.CellStyle = ColumnHeaderStyle;
                colPos++;
            }
            // ***** End 2013/11/22, Ricky So, grouping for Staff where Employee No is necessary

            cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
            cell.SetCellValue(HierarchyHeader);
            cell.CellStyle = ColumnHeaderStyle;

            foreach (DataColumn column in paymentTable.Columns)
            {
                if (column.ColumnName.Equals("EmpPayrollID"))
                {
                    continue;
                }
                colPos++;
                //workSheet.Cells.Add(RowPos, colPos, column.ColumnName, xf);
                cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
                cell.SetCellValue(column.ColumnName);
                cell.CellStyle = ColumnHeaderStyle;
            }
            colPos++;
            //workSheet.Cells.Add(RowPos, colPos, "Net Pay", xf);
            cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
            cell.SetCellValue("Net Pay");
            cell.CellStyle = ColumnHeaderStyle;
            colPos++;
            //workSheet.Cells.Add(RowPos, colPos, "Employer Contribution", xf);
            cell = (NPOI.HSSF.UserModel.HSSFCell)row.CreateCell(colPos);
            cell.SetCellValue("Employer Contribution");
            cell.CellStyle = ColumnHeaderStyle;

            //workSheet.Cells.Merge((int)RowPos - 2, (int)RowPos - 2, 2, colPos);
            workSheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress((int)RowPos - 2, (int)RowPos - 2, 1, colPos));

            return(RowPos);
        }