Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.3K
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!