private void footerPrint(ExcelXmlParser parser)
        {
            cols = parser.getColumnsInfo("foot");
            ExcelBorder border = getBorder();

            if (parser.getWithoutHeader() == false)
            {
                ExcelFont font = wb.CreateFont(FontFamily, FooterFontSize);

                font.Bold = true;
                if (HeaderTextColor != "FF000000")
                {
                    font.Color = HeaderTextColor;
                }
                for (uint row = 1; row <= cols.Length; row++)
                {
                    uint rowInd = (uint)(row + headerOffset);
                    sheet.Rows[rowInd].Height = RowHeight;

                    for (uint col = 1; col <= cols[row - 1].Length; col++)
                    {
                        if (BGColor != "FFFFFFFF")
                        {
                            sheet.Cells[rowInd, col].Style.Fill.ForegroundColor = BGColor;
                        }
                        sheet.Cells[rowInd, col].Style.Font = font;
                        //TODO add text color, vertical alignment, horizontal alignment
                        sheet.Cells[rowInd, col].Style.Border = border;
                        sheet.Cells[rowInd, col].Value        = cols[row - 1][col - 1].GetName();
                    }
                }
            }
            headerOffset += cols.Length;
        }
Beispiel #2
0
        public void Generate(string xml, Stream output)
        {
            parser = new ExcelXmlParser();
            try
            {
                parser.setXML(xml);
                createExcel(output);
                setColorProfile();
                headerPrint(parser);

                rowsPrint(parser, output);
                wb.Workbook.Document.Styles.Save();
                // remove repeat foot # charlot
                // footerPrint(parser);
                insertHeader(parser, output);
                insertFooter(parser, output);
                watermarkPrint(parser);
                //// merge head
                //sheet.MergeTwoCells("A1","A3");
                //sheet.Save();
                wb.Dispose();
            }
            catch (Exception e)
            {
                //	    e.printStackTrace();
            }
        }
Beispiel #3
0
 private void insertFooter(ExcelXmlParser parser, Stream resp)
 {
     /*   if (parser.getFooter() == true) {
      *     sheet.setRowView(headerOffset, 5000);
      *     File imgFile = new File(pathToImgs + "/footer.png");
      *     WritableImage img = new WritableImage(0, headerOffset, cols[0].length, 1, imgFile);
      *     sheet.addImage(img);
      * }*/
 }
Beispiel #4
0
        private void footerPrint(ExcelXmlParser parser)
        {
            cols = parser.getColumnsInfo("foot");
            ExcelBorder border = getBorder();

            if (parser.getWithoutHeader() == false)
            {
                ExcelFont font = wb.CreateFont("Arial", 10);

                font.Bold = true;
                if (headerTextColor != "FF000000")
                {
                    font.Color = headerTextColor;
                }
                for (uint row = 1; row <= cols.Length; row++)
                {
                    uint rowInd = (uint)(row + headerOffset);
                    //  sheet.Rows[rowInd].Height = 22.5;

                    for (uint col = 1; col <= cols[row - 1].Length; col++)
                    {
                        if (bgColor != "FFFFFFFF")
                        {
                            sheet.Cells[rowInd, col].Style.Fill.ForegroundColor = bgColor;
                        }
                        sheet.Cells[rowInd, col].Style.Font = font;
                        //TODO add text color, vertical alignment, horizontal alignment

                        sheet.Cells[rowInd, col].Style.Border = border;
                        sheet.Cells[rowInd, col].Value        = cols[row - 1][col - 1].GetName();
                    }
                }

                /*  for (int col = 0; col < cols.Length; col++) {
                 *    for (int row = 0; row < cols[col].Length; row++) {
                 *        int cspan = cols[col][row].GetColspan();
                 *        if (cspan > 0) {
                 *            sheet.mergeCells(row, headerOffset + col, row + cspan - 1, headerOffset + col);
                 *        }
                 *        int rspan = cols[col][row].GetRowspan();
                 *        if (rspan > 0) {
                 *            sheet.mergeCells(row, headerOffset + col, row, headerOffset + col + rspan - 1);
                 *        }
                 *    }
                 * }*/
            }
            headerOffset += cols.Length;
        }
        private void watermarkPrint(ExcelXmlParser parser)
        {
            if (watermark == null)
            {
                return;
            }
            ExcelFont font = wb.CreateFont(FontFamily, WatermarkFontSize);

            font.Bold  = true;
            font.Color = WatermarkTextColor;

            ExcelBorder border = getBorder();

            // f.setAlignment(Alignment.CENTRE);
            sheet.Cells[(uint)(headerOffset + 1), 0].Value = watermark;
        }
Beispiel #6
0
        private void watermarkPrint(ExcelXmlParser parser)
        {
            if (watermark == null)
            {
                return;
            }
            ExcelFont font = wb.CreateFont("Arial", 10);

            font.Bold  = true;
            font.Color = watermarkTextColor;

            ExcelBorder border = getBorder();

            //f.setAlignment(Alignment.CENTRE);
            sheet.Cells[(uint)(headerOffset + 1), 0].Value = watermark;
            //  Label label = new Label(0, headerOffset, watermark , f);
            //  sheet.addCell(label);
            // sheet.mergeCells(0, headerOffset, colsNumber, headerOffset);*/
        }
        public void Generate(string xml, Stream output)
        {
            parser = new ExcelXmlParser();
            try {
                parser.setXML(xml);
                createExcel(output);
                setColorProfile();
                headerPrint(parser);

                rowsPrint(parser, output);
                wb.Workbook.Document.Styles.Save();
                if (PrintFooter)
                {
                    footerPrint(parser);
                }
                insertHeader(parser, output);
                insertFooter(parser, output);
                watermarkPrint(parser);

                wb.Dispose();
            } catch (Exception e) {
                throw;
            }
        }
Beispiel #8
0
        private void rowsPrint(ExcelXmlParser parser, Stream resp)
        {
            ExcelRow[] rows = parser.getGridContent();

            this.rows_stat = rows.Length;

            ExcelBorder border = getBorder();
            ExcelFont   font   = wb.CreateFont("Arial", 10);

            // if (gridTextColor != "FF000000")
            //      font.Color = gridTextColor;

            for (uint row = 1; row <= rows.Length; row++)
            {
                ExcelCell[] cells  = rows[row - 1].getCells();
                uint        rowInd = (uint)(row + headerOffset);
                //  sheet.Rows[rowInd].Height = 20;

                for (uint col = 1; col <= cells.Length; col++)
                {
                    if (cells[col - 1].GetBold() || cells[col - 1].GetItalic())
                    {
                        ExcelFont curFont = wb.CreateFont("Arial", 10);;
                        // if (gridTextColor != "FF000000")
                        //       font.Color = gridTextColor;
                        if (cells[col - 1].GetBold())
                        {
                            font.Bold = true;
                        }

                        if (cells[col - 1].GetItalic())
                        {
                            font.Italic = true;
                        }

                        sheet.Cells[rowInd, col].Style.Font = curFont;
                    }
                    else
                    {
                        sheet.Cells[rowInd, col].Style.Font = font;
                    }

                    sheet.Cells[rowInd, col].Style.Border = border;


                    if ((!cells[col - 1].GetBgColor().Equals("")) && (parser.getProfile().Equals("full_color")))
                    {
                        sheet.Cells[rowInd, col].Style.Fill.ForegroundColor = "FF" + cells[col - 1].GetBgColor();
                    }
                    else
                    {
                        //Colour bg;
                        if (row % 2 == 0 && scaleTwoColor != "FFFFFFFF")
                        {
                            sheet.Cells[rowInd, col].Style.Fill.ForegroundColor = scaleTwoColor;
                        }
                        else
                        {
                            if (scaleOneColor != "FFFFFFFF")
                            {
                                sheet.Cells[rowInd, col].Style.Fill.ForegroundColor = scaleOneColor;
                            }
                        }
                    }


                    int    intVal;
                    double dbVal;

                    if (int.TryParse(cells[col - 1].GetValue(), out intVal))
                    {
                        sheet.Cells[rowInd, col].Value = intVal;
                    }
                    else if (double.TryParse(cells[col - 1].GetValue(), out dbVal))
                    {
                        sheet.Cells[rowInd, col].Value = dbVal;
                    }
                    else
                    {
                        sheet.Cells[rowInd, col].Value = cells[col - 1].GetValue();
                    }


                    //COLOR!



                    //String al = cells[row].getAlign();
                    //if (al == "")
                    //    al = cols[0][row].getAlign();
                    //if (al.equalsIgnoreCase("left"))
                    //{
                    //    f.setAlignment(Alignment.LEFT);
                    //}
                    //else
                    //{
                    //    if (al.equalsIgnoreCase("right"))
                    //    {
                    //        f.setAlignment(Alignment.RIGHT);
                    //    }
                    //    else
                    //    {
                    //        f.setAlignment(Alignment.CENTRE);
                    //    }
                    //}
                }
            }
            headerOffset += rows.Length;
        }
Beispiel #9
0
        //public void Generate(string xml, HttpResponseBase resp)
        //{
        //    var data = new MemoryStream();

        //    resp.ContentType = ContentType;
        //    resp.HeaderEncoding = Encoding.UTF8;
        //    resp.AppendHeader("Content-Disposition", "attachment;filename=my_report.xlsx");
        //    resp.AppendHeader("Cache-Control", "max-age=0");
        //    Generate(xml, data);

        //    data.WriteTo(resp.OutputStream);
        //}


        private void headerPrint(ExcelXmlParser parser)
        {
            cols = parser.getColumnsInfo("head");

            int[] widths = parser.getWidths();
            this.cols_stat = widths.Length;



            int sumWidth = 0;

            for (int i = 0; i < widths.Length; i++)
            {
                sumWidth += widths[i];
            }

            if (parser.getWithoutHeader() == false)
            {
                ExcelFont font = wb.CreateFont("Arial", 10);
                font.Bold = true;
                if (headerTextColor != "FF000000")
                {
                    font.Color = headerTextColor;
                }

                ExcelBorder border = getBorder();


                for (uint row = 1; row <= cols.Length; row++)
                {
                    //   sheet.Rows[row].Height = 22.5;
                    for (uint col = 1; col <= cols[row - 1].Length; col++)
                    {
                        // trick before font
                        //sheet.Cells[row, col].Style.SetAlignmentCenter = true;
                        sheet.Cells[row, col, true].IsHead = true;

                        sheet.Cells[row, col, true].Style.Font = font;//if bold font assigned after border - all table will be bold, weird, find out later

                        sheet.Cells[row, col].Style.Border = border;
                        sheet.Columns[col].Width           = widths[col - 1] / scale;
                        String name = cols[row - 1][col - 1].GetName();
                        if (bgColor != "FFFFFFFF")
                        {
                            sheet.Cells[row, col, true].Style.Fill.ForegroundColor = bgColor;
                        }

                        ///TODO:
                        ///font color, merge cells, alignment
                        sheet.Cells[row, col, true].Value = name;
                        colsNumber = (int)col;
                    }
                }
                headerOffset = cols.Length;



                /*  for (int col = 0; col < cols.Length; col++) {
                 *    for (int row = 0; row < cols[col].Length; row++) {
                 *        int cspan = cols[col][row].GetColspan();
                 *        if (cspan > 0) {
                 *            sheet.mergeCells(row, col, row + cspan - 1, col);
                 *        }
                 *        int rspan = cols[col][row].GetRowspan();
                 *        if (rspan > 0) {
                 *            sheet.mergeCells(row, col, row, col + rspan - 1);
                 *        }
                 *    }
                 * }*/
            }
        }
        private void headerPrint(ExcelXmlParser parser)
        {
            cols = parser.getColumnsInfo("head");
            //Widths
            int[] widths = parser.getWidths();
            if (this.Widths != null)
            {
                foreach (var index in this.Widths.Keys)
                {
                    if (index >= 0 && index < widths.Length)
                    {
                        widths[index] = Widths[index];
                    }
                }
            }
            this.cols_stat = widths.Length;



            int sumWidth = 0;

            for (int i = 0; i < widths.Length; i++)
            {
                sumWidth += widths[i];
            }

            if (parser.getWithoutHeader() == false)
            {
                ExcelFont font = wb.CreateFont(FontFamily, HeaderFontSize);
                font.Bold = true;
                if (HeaderTextColor != "FF000000")
                {
                    font.Color = HeaderTextColor;
                }

                ExcelBorder border = getBorder();


                for (uint row = 1; row <= cols.Length; row++)
                {
                    sheet.Rows[row].Height = RowHeight;
                    for (uint col = 1; col <= cols[row - 1].Length; col++)
                    {
                        sheet.Cells[row, col].Style.Font = font;//if bold font assigned after border - all table will be bold, weird, find out later

                        sheet.Cells[row, col].Style.Border = border;

                        sheet.Columns[col].Width = widths[col - 1] / scale;
                        String name = cols[row - 1][col - 1].GetName();
                        if (BGColor != "FFFFFFFF")
                        {
                            sheet.Cells[row, col].Style.Fill.ForegroundColor = BGColor;
                        }



                        ///TODO:
                        ///font color, merge cells, alignment
                        sheet.Cells[row, col].Value = name;
                        colsNumber = (int)col;
                    }
                }
                headerOffset = cols.Length;
            }
        }