public void SavingLoadingTableWithNewLineInHeader2() { using (var wb = new XLWorkbook()) { IXLWorksheet ws = wb.Worksheets.Add("Test"); var dt = new DataTable(); string columnName = "Line1" + Environment.NewLine + "Line2"; dt.Columns.Add(columnName); DataRow dr = dt.NewRow(); dr[columnName] = "some text"; dt.Rows.Add(dr); ws.Cell(1, 1).InsertTable(dt); IXLTable table1 = ws.Table(0); string fieldName1 = table1.Field(0).Name; Assert.AreEqual(columnName, fieldName1); using (var ms = new MemoryStream()) { wb.SaveAs(ms, true); var wb2 = new XLWorkbook(ms); IXLWorksheet ws2 = wb2.Worksheet(1); IXLTable table2 = ws2.Table(0); string fieldName2 = table2.Field(0).Name; Assert.AreEqual("Line1\nLine2", fieldName2); } } }
private static void DeleteTableColumn(IXLTable table, IEnumerable <string> headersToDelete) { if (headersToDelete is null) { return; } foreach (var headerToDelete in headersToDelete) { var columnToDelete = table.Field(headerToDelete); if (columnToDelete is null) { continue; } columnToDelete.Delete(); } }
public void SavingLoadingTableWithNewLineInHeader() { var wb = new XLWorkbook(); IXLWorksheet ws = wb.AddWorksheet("Sheet1"); string columnName = "Line1" + Environment.NewLine + "Line2"; ws.FirstCell().SetValue(columnName) .CellBelow().SetValue("A"); ws.RangeUsed().CreateTable(); using (var ms = new MemoryStream()) { wb.SaveAs(ms); var wb2 = new XLWorkbook(ms); IXLWorksheet ws2 = wb2.Worksheet(1); IXLTable table2 = ws2.Table(0); string fieldName = table2.Field(0).Name; Assert.AreEqual("Line1\nLine2", fieldName); } }
private void GenerarExcelDetalle() { var poliza = Polizas.FirstOrDefault(x => x.IS_SELECTED); if (poliza == null) { InteraccionConUsuarioServicio.Mensaje("Debe seleccionar una poliza para generar la plantilla."); return; } SaveFileDialog dialogoGuardar = new SaveFileDialog(); dialogoGuardar.Filter = "Excel xlsx (*.xlsx)|*.xlsx"; dialogoGuardar.FilterIndex = 2; dialogoGuardar.RestoreDirectory = true; if (dialogoGuardar.ShowDialog() == DialogResult.OK) { path = dialogoGuardar.FileName; XLWorkbook workbook = new XLWorkbook(); IXLWorksheet worksheet = workbook.Worksheets.Add("Detalle"); worksheet.Protect("Mobility2016$$"); worksheet.Cell(2, 2).Value = "Póliza"; worksheet.Cell(2, 3).Value = poliza.CODIGO_POLIZA; worksheet.Cell(2, 2).Style.Font.Bold = true; worksheet.Cell(3, 2).Value = "Fecha Generación"; worksheet.Cell(3, 3).Value = DateTime.Now; worksheet.Cell(3, 2).Style.Font.Bold = true; int inicioEncabezadoX = 5; int inicioEncabezadoY = 2; worksheet.Column(inicioEncabezadoY + 0).Width = 20; worksheet.Column(inicioEncabezadoY + 1).Width = 60; worksheet.Column(inicioEncabezadoY + 2).Width = 20; worksheet.Column(inicioEncabezadoY + 3).Width = 20; worksheet.Column(inicioEncabezadoY + 4).Width = 10; //Encabezado Tabla for (int j = 0; j <= UiGridVistaDetalle.Columns.Count - 1; j++) { worksheet.Cell(inicioEncabezadoX, inicioEncabezadoY + j).Value = UiGridVistaDetalle.Columns[j].Caption; worksheet.Cell(inicioEncabezadoX, inicioEncabezadoY + j).Style.Font.Bold = true; worksheet.Cell(inicioEncabezadoX, inicioEncabezadoY + j).Style.Fill.BackgroundColor = XLColor.BabyBlueEyes; worksheet.Cell(inicioEncabezadoX, inicioEncabezadoY + j).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center); } //Datos for (int i = 0; i <= UiGridVistaDetalle.RowCount - 1; i++) { for (int j = 0; j <= UiGridVistaDetalle.Columns.Count - 1; j++) { //Celda de total if (j == 4) { worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY).FormulaR1C1 = "=RC[-2]*RC[-1]"; worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY).Style.NumberFormat.Format = " #,##0.00"; worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY).DataType = XLCellValues.Number; } else { worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY).Value = (UiGridVistaDetalle.GetRowCellValue(i, UiGridVistaDetalle.Columns[j]).ToString()); worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY) .Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Left); } if (j == 3) //Celda de costo unitario { worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY).DataType = XLCellValues.Number; worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY).Style.NumberFormat.Format = " #,##0.00"; worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY) .Style.Protection.SetLocked(false); // worksheet.Cell(i + 1 + inicioEncabezadoX, j + inicioEncabezadoY).DataValidation.Decimal.Between(0, double.MaxValue - 1); } } } //Convertir en tabla de excel IXLRange rngTable = worksheet.Range(worksheet.Cell(inicioEncabezadoX, inicioEncabezadoY), worksheet.Cell(inicioEncabezadoX + UiGridVistaDetalle.RowCount, inicioEncabezadoY + UiGridVistaDetalle.Columns.Count - 1)); IXLTable excelTable = rngTable.CreateTable(); excelTable.ShowTotalsRow = true; excelTable.Field(4).TotalsRowFunction = XLTotalsRowFunction.Sum; excelTable.Field(3).TotalsRowFunction = XLTotalsRowFunction.Sum; excelTable.Field(2).TotalsRowFunction = XLTotalsRowFunction.Sum; excelTable.Field(1).TotalsRowFunction = XLTotalsRowFunction.Count; excelTable.Field(0).TotalsRowLabel = "Total:"; excelTable.ShowAutoFilter = false; //Guardar Excel if ((File.Exists(path))) { System.IO.File.Delete(path); } workbook.SaveAs(path); Action <bool> abrirExcel = AbrirExcel; InteraccionConUsuarioServicio.Confirmar("Archivo generado exitosamente, ¿Desea abrir el archivo?", abrirExcel); //MessageBox.Show("Archivo generado exitosamente, ¿Desea abrir el archivo?", "Operación exitosa", MessageBoxButtons.YesNo, MessageBoxIcon.Question); } }