public override void GenerarEXCEL(string titulo = "") { string pathFile = "", cuentaBancoEmpresa = ""; string id = "", empleadoId, cedulaRNC, nombre, cuentaBancoEmpleado = "", formaPago = "E"; double sueldoNeto = 0; int I = 2; string formula = ""; OfficeDriver.ExcelDriver objExcel = new OfficeDriver.ExcelDriver(); DataTable DTCuenta = null, DTEmpleado = null; try { if (MyData == null) { return; } if (MyData.Rows.Count <= 0) { return; } Cursor = Cursors.WaitCursor; objExcel.isOpenOffice = objUtil.IsOpenOfficeIntalled(); if (objExcel.isOpenOffice == false && objUtil.IsMSExcelIntalled() == false) { throw new Exception("MS EXCEL U OPEN OFFICE CAL NO INSTALLED"); } //Buscamos la Cuenta Bancaria Para Pago de Nomina o Transferencia Bancaria objDB.LimpiarFiltros(); objDB.AddFiltroIgualA("Empresa_Id", empresaID.ToString()); objDB.AddFiltroIgualA("EsActivo", "1"); objDB.AddFiltroIgualA("EsNomina", "1"); DTCuenta = objDB.GetAll("TBANCOS_CUENTAS_BANCARIAS", 1, objDB.Filtros); if (DTCuenta.Rows.Count > 0) { cuentaBancoEmpresa = objUtil.GetAsString("Codigo_Completo", DTCuenta.Rows[0]); } if (cuentaBancoEmpresa.Trim() == "") { Cursor = Cursors.Default; objUtil.MostrarMensajeError("No se ha Definido Cuenta Bancaria Empresa Para el Pago de Nomina"); return; } //Establecemos el Id de la Nomina id = "Nomina_" + nominaId.ToString() + "_" + empresaID.ToString(); pathFile = GetFolderDocGenerados("Nomina") + @"\" + id + ".xls"; if (File.Exists(pathFile)) { File.Delete(pathFile); } //objExcel.create(pathFile, true); objExcel.OpenWorkBook(""); objExcel.SetCellValue("A1", "RNC"); objExcel.SetCellValue("B1", "CUENTA ORIGEN"); objExcel.SetCellValue("C1", "CUENTA DESTINO"); objExcel.SetCellValue("D1", "MONTO A PAGAR"); objExcel.SetCellValue("E1", "REGISTRO ID"); objExcel.SetCellValue("F1", "NOMBRE"); objExcel.SetCellValue("G1", "FORMA PAGO"); formula = "Sum(D2:D"; foreach (DataRow item in MyData.Rows) { this.Cursor = Cursors.WaitCursor; empleadoId = objUtil.GetAsString("Empleado_Id", item, "0"); cedulaRNC = objUtil.GetAsString("CedulaRNC", item); nombre = objUtil.GetAsString("Nombre", item); sueldoNeto = objUtil.GetAsDouble("Monto_APagar", item, 0); cuentaBancoEmpleado = objUtil.GetAsString("Cuenta_Banco_Destino", item, ""); formaPago = objUtil.GetAsString("Forma_Pago", item, "CHK"); if (cuentaBancoEmpleado.Trim() == "") { //Buscamos la Cuenta de Banco de Dicho Empleado DTEmpleado = objDB.GetById("TRRHH_EMPLEADOS", empleadoId, "Empleado_Id"); if (DTEmpleado.Rows.Count > 0) { cuentaBancoEmpleado = objUtil.GetAsString("Cuenta_Banco_No", DTEmpleado.Rows[0]); } } objExcel.SetCellValue("A" + I.ToString(), EMPRESA_RNC); objExcel.SetCellValue("B" + I.ToString(), cuentaBancoEmpresa); objExcel.SetCellValue("C" + I.ToString(), cuentaBancoEmpleado); objExcel.SetCellValue("D" + I.ToString(), sueldoNeto); objExcel.SetCellValue("E" + I.ToString(), I - 1); objExcel.SetCellValue("F" + I.ToString(), nombre); objExcel.SetCellValue("G" + I.ToString(), formaPago); I++; this.Cursor = Cursors.Default; } formula += (I - 1).ToString() + ")"; objExcel.SetCellFormula("D" + I.ToString(), formula); objExcel.Autofit(); objExcel.SaveAS(pathFile); objExcel.ShowBook(); Cursor = Cursors.Default; } catch (Exception ex) { objUtil.MostrarMensajeError(ex.Message); } finally { Cursor = Cursors.Default; //objExcel.CloseBook(); } }
void generarExcel() { int conteo = 0; double porc = 0; object valor = null; string numberFormat = ""; try { //Validamos excel u openoffice deben estar instalado if (util.IsMSExcelIntalled() == false && util.IsOpenOfficeIntalled() == false) { throw new Exception("USTED NO TIENE EXCEL U OPEN OFFICE INSTALADO"); } if (util.IsMSExcelIntalled()) { excel.isOpenOffice = false; Text = "EXPORT TO MS EXCEL"; } else { excel.isOpenOffice = true; Text = "EXPORT TO OPEN OFFICE CALC"; } Cursor = Cursors.WaitCursor; conteo = DTData.Rows.Count; if (titulo.Trim() != "") { conteo += 2; } if (subTitulo1.Trim() != "") { conteo++; } if (subTitulo2.Trim() != "") { conteo++; } if (conteo > 0) { porc = (fila / conteo) * 100; } lblPorcentaje.Text = "0/" + conteo.ToString() + " (0%)"; //En la primera fila se escribe las columnas progressBar1.Minimum = 0; progressBar1.Maximum = conteo; progressBar1.Step = 1; //Abrimos el archivo de excel Cursor = Cursors.WaitCursor; excel.OpenWorkBook(""); //Pasamos las columnas en el encabezado escribirColumnas(); format.bold = false; format.size = 12; format.backGroundColor = Color.Transparent; foreach (DataRow item in DTData.Rows) { Cursor = Cursors.WaitCursor; col = 1; //Debemos hacer un bucle por cada columna foreach (MyColumna myCol in colList) { numberFormat = ""; valor = db.GetValue(myCol.NombreCampo, item); if (db.isString) { numberFormat = "@"; } excel.SetCellValue(fila, col, valor, numberFormat); excel.SetCellFormat(fila, col, format); col++; } //Mostramos el procentaje Cursor = Cursors.Default; progressBar1.PerformStep(); porc = ((fila - 1) / (double)conteo) * 100; lblPorcentaje.Text = (fila - 1).ToString() + "/" + conteo.ToString() + " (" + porc.ToString("N2") + "%)"; fila++; col = 1; DRItem = item; } //Agregamos funcion para sumar if (fila > 2) { addFunctionSum(); } //Agregamos los titulos; escribirTitulos(); //Ajustar tamano de las columnas excel.Autofit(colList.Count); //Mostramos el archivo generado excel.ShowBook(); Close(); } catch (Exception ex) { excel.CloseBook(); Cursor = Cursors.Default; util.MostrarMensajeError(ex.Message); Close(); } }