Example #1
0
        private void ExportToSpreadsheet(DataSet dsExcel)
        {
            try
            {
                CarlosAg.ExcelXmlWriter.Workbook book = new CarlosAg.ExcelXmlWriter.Workbook();

                //Crear propiedades del excel
                CrearPropiedades(book);
                //Add styles to the workbook
                GenerarEstilos(book.Styles);

                // Add a Worksheet with some data
                GenerarHojas(book.Worksheets, dsExcel);

                SaveFileDialog saveFileDialog1 = new SaveFileDialog();
                saveFileDialog1.Filter   = "Excel|*.xls";
                saveFileDialog1.Title    = "Save an Excel File";
                saveFileDialog1.FileName = DateTime.Now.ToString("yyyy-MM-dd") + " PRODUCTO";
                saveFileDialog1.ShowDialog();

                if (saveFileDialog1.FileName != string.Empty)
                {
                    book.Save(saveFileDialog1.FileName);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #2
0
 private void GenerateExcelReport(DataTable dtTable, DataTable dtLength, string strFilePath, string ReportName, string strFileName)
 {
     //Add a workbook
     CarlosAg.ExcelXmlWriter.Workbook book = new CarlosAg.ExcelXmlWriter.Workbook();
     #region SheetProperties
     // Specify which Sheet should be opened and the size of window by default
     book.ExcelWorkbook.ActiveSheetIndex = 1;
     book.ExcelWorkbook.WindowTopX       = 100;
     book.ExcelWorkbook.WindowTopY       = 200;
     book.ExcelWorkbook.WindowHeight     = 7000;
     book.ExcelWorkbook.WindowWidth      = 8000;
     // Some optional properties of the Document
     book.Properties.Author  = "Secure Proctor Report";
     book.Properties.Title   = "Excel Export";
     book.Properties.Created = DateTime.Now;
     #endregion
     #region CellStyle
     WorksheetStyle CellStyle = book.Styles.Add("CellStyle");
     CellStyle.Font.FontName        = "Arial";
     CellStyle.Font.Size            = 11;
     CellStyle.Font.Color           = "#000000";
     CellStyle.Alignment.Horizontal = StyleHorizontalAlignment.Center;
     CellStyle.Alignment.Vertical   = StyleVerticalAlignment.Center;
     CellStyle.Alignment.WrapText   = false;
     CellStyle.Borders.Add(StylePosition.Bottom, LineStyleOption.Continuous, 1);
     CellStyle.Borders.Add(StylePosition.Left, LineStyleOption.Continuous, 1);
     CellStyle.Borders.Add(StylePosition.Right, LineStyleOption.Continuous, 1);
     CellStyle.Borders.Add(StylePosition.Top, LineStyleOption.Continuous, 1);
     CellStyle.NumberFormat = "@";
     #endregion
     #region HeaderStyle
     WorksheetStyle HeaderStyle = book.Styles.Add("HeaderStyle");
     HeaderStyle.Font.FontName        = "Arial";
     HeaderStyle.Font.Size            = 11;
     HeaderStyle.Font.Bold            = true;
     HeaderStyle.Alignment.Horizontal = StyleHorizontalAlignment.Center;
     HeaderStyle.Alignment.WrapText   = false;
     HeaderStyle.Font.Color           = "#000000";
     HeaderStyle.Interior.Color       = "#99CCFF";
     HeaderStyle.Interior.Pattern     = StyleInteriorPattern.Solid;
     HeaderStyle.Borders.Add(StylePosition.Bottom, LineStyleOption.Continuous, 1);
     HeaderStyle.Borders.Add(StylePosition.Left, LineStyleOption.Continuous, 1);
     HeaderStyle.Borders.Add(StylePosition.Right, LineStyleOption.Continuous, 1);
     HeaderStyle.Borders.Add(StylePosition.Top, LineStyleOption.Continuous, 1);
     #endregion
     // Add a Worksheet with some data
     Worksheet sheet = book.Worksheets.Add(ReportName);
     //Add row with some properties
     WorksheetRow row = sheet.Table.Rows.Add();
     row.Index         = 0;
     row.Height        = 35;
     row.AutoFitHeight = true;
     //Set worksheet column names
     int ColNumber    = 0;
     int ColumnLength = 100;
     int colSeedValue = 7;
     foreach (DataColumn dc in dtTable.Columns)
     {
         ///* SET COLUMN WIDTH - START */
         if (dtLength.Rows[0][ColNumber] != null)
         {
             if (dtLength.Rows[0][ColNumber].ToString().Length != 0)
             {
                 if (Convert.ToInt32(dtLength.Rows[0][ColNumber].ToString()) > dc.ColumnName.Length)
                 {
                     ColumnLength = Convert.ToInt32(dtLength.Rows[0][ColNumber].ToString()) * colSeedValue;
                 }
                 else
                 {
                     ColumnLength = dc.ColumnName.Length * colSeedValue;
                 }
             }
             else
             {
                 ColumnLength = dc.ColumnName.Length * colSeedValue;
             }
         }
         else
         {
             ColumnLength = dc.ColumnName.Length * colSeedValue;
         }
         ///* SET COLUMN WIDTH - END */
         //ColumnLength = 100;
         sheet.Table.Columns.Add(new WorksheetColumn(ColumnLength));
         WorksheetCell wcHeader = new WorksheetCell(dc.ColumnName, CarlosAg.ExcelXmlWriter.DataType.String, "HeaderStyle");
         row.Cells.Add(wcHeader);
         ColNumber++;
     }
     foreach (DataRow dtrrow in dtTable.Rows)
     {
         //Add row to the excel sheet
         row = sheet.Table.Rows.Add();
         //row.Height = 30;
         row.AutoFitHeight = true;
         //Loop through each column
         foreach (DataColumn col in dtTable.Columns)
         {
             WorksheetCell wc = new WorksheetCell(dtrrow[col.ColumnName].ToString(), DataType.String, "CellStyle");
             row.Cells.Add(wc);
         }
     }
     //Save the work book
     book.Save(strFilePath);
     DownloadFile(strFilePath, strFileName);
 }
Example #3
0
        /// <summary>
        /// Método que exporta el reporte a excel.
        /// </summary>
        /// <param name="Dt_Datos">Tabla que contiene los datos que se mostraran en el reporte</param>
        /// <param name="Titulo">Titulo del reporte</param>
        /// <creo>Juan Alberto Hernández Negrete</creo>
        /// <fecha_creo>21 Mayo 2014 10:08 Hrs</fecha_creo>
        /// <modifico></modifico>
        /// <fecha_modifico></fecha_modifico>
        /// <causa_modificacion></causa_modificacion>
        ///*******************************************************************************************************
        /// <summary>
        ///  Método que exporta la información de una datatable a un archivo excel en una ruta dada
        /// </summary>
        /// <param name="Dt_Datos">Tabla que contiene los datos que se mostrarán en el reporte</param>
        /// <param name="Titulo">Título del reporte</param>
        /// <param name="Ruta_Archivo">Ruta para escribir el archivo</param>
        /// <creo>Juan Alberto Hernández Negrete</creo>
        /// <fecha_creo>21-may-2014</fecha_creo>
        /// <modifico></modifico>
        /// <fecha_modifico></fecha_modifico>
        /// <causa_modificacion></causa_modificacion>
        ///*******************************************************************************************************
        public void Exportar_Excel(DataTable Dt_Datos, string Titulo, string Ruta_Archivo)
        {
            try
            {
                CarlosAg.ExcelXmlWriter.Workbook Libro = new CarlosAg.ExcelXmlWriter.Workbook();
                Libro.Properties.Title   = "Reporte Museo de las momias de Guanajuato";
                Libro.Properties.Created = DateTime.Now;
                Libro.Properties.Author  = "Sistema de Administración, control y monitoreo del Museo de momias de Guanajuato";

                //Creamos una hoja que tendrá el libro.
                CarlosAg.ExcelXmlWriter.Worksheet Hoja = Libro.Worksheets.Add(Titulo);
                //Agregamos un renglón a la hoja de excel.
                CarlosAg.ExcelXmlWriter.WorksheetRow Renglon = Hoja.Table.Rows.Add();

                //Creamos el estilo cabecera para la hoja de excel.
                CarlosAg.ExcelXmlWriter.WorksheetStyle Estilo_Cabecera = Libro.Styles.Add("HeaderStyle");
                Estilo_Cabecera.Font.FontName        = "Tahoma";
                Estilo_Cabecera.Font.Size            = 10;
                Estilo_Cabecera.Font.Bold            = true;
                Estilo_Cabecera.Alignment.Horizontal = StyleHorizontalAlignment.Center;
                Estilo_Cabecera.Font.Color           = "#FFFFFF";
                Estilo_Cabecera.Interior.Color       = "#193d61";
                Estilo_Cabecera.Interior.Pattern     = StyleInteriorPattern.Solid;
                Estilo_Cabecera.Borders.Add(StylePosition.Top, LineStyleOption.Continuous, 1, "Black");
                Estilo_Cabecera.Borders.Add(StylePosition.Bottom, LineStyleOption.Continuous, 1, "Black");
                Estilo_Cabecera.Borders.Add(StylePosition.Left, LineStyleOption.Continuous, 1, "Black");
                Estilo_Cabecera.Borders.Add(StylePosition.Right, LineStyleOption.Continuous, 1, "Black");

                //Creamos el estilo cabecera para la hoja de excel.
                CarlosAg.ExcelXmlWriter.WorksheetStyle Estilo_Resaltar = Libro.Styles.Add("EstiloResaltar");
                Estilo_Resaltar.Font.FontName        = "Tahoma";
                Estilo_Resaltar.Font.Size            = 10;
                Estilo_Resaltar.Font.Bold            = true;
                Estilo_Resaltar.Alignment.Horizontal = StyleHorizontalAlignment.Left;

                //Creamos el estilo contenido para la hoja de excel.
                CarlosAg.ExcelXmlWriter.WorksheetStyle Estilo_Contenido = Libro.Styles.Add("BodyStyle");
                Estilo_Contenido.Font.FontName        = "Tahoma";
                Estilo_Contenido.Font.Size            = 9;
                Estilo_Contenido.Font.Bold            = false;
                Estilo_Contenido.Alignment.Horizontal = StyleHorizontalAlignment.Left;
                Estilo_Contenido.Font.Color           = "#000000";
                Estilo_Contenido.Interior.Color       = "#FFFFFF";
                Estilo_Contenido.Interior.Pattern     = StyleInteriorPattern.Solid;
                Estilo_Contenido.Borders.Add(StylePosition.Top, LineStyleOption.Continuous, 1, "Black");
                Estilo_Contenido.Borders.Add(StylePosition.Bottom, LineStyleOption.Continuous, 1, "Black");
                Estilo_Contenido.Borders.Add(StylePosition.Left, LineStyleOption.Continuous, 1, "Black");
                Estilo_Contenido.Borders.Add(StylePosition.Right, LineStyleOption.Continuous, 1, "Black");
                Estilo_Contenido.Alignment.WrapText = true;

                // agregar las columnas a la hoja recorriendo Dt_Datos
                Array.ForEach(Dt_Datos.Columns.OfType <DataColumn>().ToArray(), columna =>
                {
                    Hoja.Table.Columns.Add(new CarlosAg.ExcelXmlWriter.WorksheetColumn(90));
                });

                // agregar nombre de la tabla y fecha
                Renglon.Cells.Add(new CarlosAg.ExcelXmlWriter.WorksheetCell(Titulo, DataType.String, "EstiloResaltar"));
                Renglon.Cells.Add(new CarlosAg.ExcelXmlWriter.WorksheetCell("", DataType.String, "EstiloResaltar"));
                Renglon.Cells.Add(new CarlosAg.ExcelXmlWriter.WorksheetCell(DateTime.Today.ToString("dd-MMM-yyyy"), DataType.String, "EstiloResaltar"));
                // si hay un rango de fechas seleccionado, agregarlo
                if (Dtp_Fecha_Inicio.Checked.Equals(true) || Dtp_Fecha_Termino.Checked.Equals(true))
                {
                    Renglon = Hoja.Table.Rows.Add();
                    Renglon.Cells.Add(new CarlosAg.ExcelXmlWriter.WorksheetCell(Dtp_Fecha_Inicio.Text + " - " + Dtp_Fecha_Termino.Text, DataType.String, "EstiloResaltar"));
                }
                // si hay un usuario o tipo de operación seleccionado, agregar
                if (Cmb_Operacion.SelectedIndex > 0)
                {
                    Renglon = Hoja.Table.Rows.Add();
                    Renglon.Cells.Add(new CarlosAg.ExcelXmlWriter.WorksheetCell(Cmb_Operacion.Text, DataType.String, "EstiloResaltar"));
                }
                if (Cmb_Usuario.SelectedIndex > 0)
                {
                    Renglon = Hoja.Table.Rows.Add();
                    Renglon.Cells.Add(new CarlosAg.ExcelXmlWriter.WorksheetCell(Cmb_Usuario.Text, DataType.String, "EstiloResaltar"));
                }

                // validar la tabla
                if (Dt_Datos is DataTable && Dt_Datos != null && Dt_Datos.Rows.Count > 0)
                {
                    Renglon = Hoja.Table.Rows.Add();
                    // recorrer las columnas en Dt_Datos para agregar las celdas encabezado
                    foreach (DataColumn Columna in Dt_Datos.Columns)
                    {
                        if (Columna is DataColumn)
                        {
                            Renglon.Cells.Add(new CarlosAg.ExcelXmlWriter.WorksheetCell(Columna.ColumnName.Replace("_", " "), "HeaderStyle"));
                        }
                    }

                    int Contador_Columnas;
                    int Total_columnas = Dt_Datos.Columns.Count;
                    // recorrer las filas en Dt_Datos para agregar las celdas
                    foreach (DataRow Dr in Dt_Datos.Rows)
                    {
                        Renglon = Hoja.Table.Rows.Add();

                        for (Contador_Columnas = 0; Contador_Columnas < Total_columnas; Contador_Columnas++)
                        {
                            Renglon.Cells.Add(new CarlosAg.ExcelXmlWriter.WorksheetCell(Dr[Contador_Columnas].ToString(), DataType.String, "BodyStyle"));
                        }
                    }
                }

                Libro.Save(Ruta_Archivo);
            }
            catch (IOException Ex)
            {
                throw Ex;
            }
            catch (Exception Ex)
            {
                throw Ex;
            }
        }