Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.3K
Vistas
EPPlus: ¿cómo puedo asignar un borde alrededor de cada celda después de aplicar LoadFromCollection?

En mi exportación ActionResult pude cargar el modelo en mi ExcelPackage.

Donde tengo problemas es asignar un borde alrededor de cada celda una vez que se aplica LoadFromCollection . Si bien AutoFitColumns se aplica correctamente, el estilo de borde que apliqué solo funciona en Cells["D1"] , pero no en la tabla.

BorderAround coloca con éxito un borde alrededor de toda la tabla, pero prefiero aplicar el borde a las celdas dentro de la tabla. ¿Hay alguna manera de que pueda hacer eso?

 // Fill worksheet with data to export var modelCells = worksheet.Cells["D1"]; var border = modelCells.Style.Border.Top.Style = modelCells.Style.Border.Left.Style = modelCells.Style.Border.Right.Style = modelCells.Style.Border.Bottom.Style = ExcelBorderStyle.Medium; modelCells .LoadFromCollection(Collection: exportQuery, PrintHeaders: true) .AutoFitColumns();
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Si sé la cantidad de columnas que tiene el modelo, puedo contar la cantidad de filas con una función y hacer esto:

 var modelRows = exportQuery.Count()+1; string modelRange = "D1:F" + modelRows.ToString(); var modelTable = worksheet.Cells[modelRange];

O, con más contexto. Verifiqué que EPPlus aceptará una variable de cadena en Cells[], lo que me permite seleccionar toda la tabla y aplicar mi estilo de borde y AutoFitColumns{} correctamente. Todo lo que tengo que hacer manualmente es ingresar la columna inicial y la columna final en la variable modelRange .

 var modelCells = worksheet.Cells["D1"]; var modelRows = exportQuery.Count()+1; string modelRange = "D1:F" + modelRows.ToString(); var modelTable = worksheet.Cells[modelRange]; // Assign borders modelTable.Style.Border.Top.Style = ExcelBorderStyle.Thin; modelTable.Style.Border.Left.Style = ExcelBorderStyle.Thin; modelTable.Style.Border.Right.Style = ExcelBorderStyle.Thin; modelTable.Style.Border.Bottom.Style = ExcelBorderStyle.Thin; // Fill worksheet with data to export modelCells.LoadFromCollection(Collection: exportQuery, PrintHeaders: true); modelTable.AutoFitColumns();
over 4 years ago · Santiago Trujillo Denunciar

0

Esto hará el truco: hoja de trabajo.Celdas[hoja de trabajo.Dimensión.Dirección]

 using (ExcelPackage excel = new ExcelPackage()) { excel.Workbook.Worksheets.Add(sheetName); excel.SaveAs(excelFile); string headerRange = "A1:" + char.ConvertFromUtf32(dtJobs.Columns.Count + 64) + "1"; // Target a worksheet var worksheet = excel.Workbook.Worksheets[sheetName]; #region design Header //worksheet.Cells[headerRange].Style.Font.Bold = true; worksheet.Cells[headerRange].Style.Font.Size = 11; worksheet.Cells[headerRange].Style.Fill.PatternType = ExcelFillStyle.Solid; worksheet.Cells[headerRange].Style.Fill.BackgroundColor.SetColor(Color.DarkGray); //worksheet.Cells[headerRange].Style.WrapText = true; worksheet.Cells[headerRange].Style.Font.Color.SetColor(Color.White); worksheet.Cells[headerRange].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; worksheet.Cells[headerRange].Style.VerticalAlignment = ExcelVerticalAlignment.Center; #endregion var excelWorksheet = excel.Workbook.Worksheets[sheetName]; excelWorksheet.Cells[excelWorksheet.Dimension.End.Row, 1].LoadFromDataTable(dtJobs, true); worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns(); worksheet.Cells[worksheet.Dimension.Address].Style.Border.Top.Style = ExcelBorderStyle.Thin; worksheet.Cells[worksheet.Dimension.Address].Style.Border.Left.Style = ExcelBorderStyle.Thin; worksheet.Cells[worksheet.Dimension.Address].Style.Border.Right.Style = ExcelBorderStyle.Thin; worksheet.Cells[worksheet.Dimension.Address].Style.Border.Bottom.Style = ExcelBorderStyle.Thin; excel.SaveAs(excelFile); return filePath; }
over 4 years ago · Santiago Trujillo Denunciar

0

 var package = new ExcelPackage(new MemoryStream()); var ws = package.Workbook.Worksheets.Add("Test"); var modelTable = ws.Cells; modelTable.Style.Border.Top.Style = ExcelBorderStyle.Thin; modelTable.Style.Border.Left.Style = ExcelBorderStyle.Thin; modelTable.Style.Border.Right.Style = ExcelBorderStyle.Thin; modelTable.Style.Border.Bottom.Style = ExcelBorderStyle.Thin; modelTable.AutoFitColumns(); // calculate ws.Calculate(); saveFileDialog_SaveExcel.Filter = "Excel files (*.xlsx)|*.xlsx"; var dialogResult = saveFileDialog_SaveExcel.ShowDialog(); if (dialogResult == DialogResult.OK) { package.SaveAs(new FileInfo(saveFileDialog_SaveExcel.FileName)); }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda