Вопрос:
В моем экспорте ActionResult я смог загрузить модель в свой ExcelPackage.
В тех случаях, когда возникают проблемы, назначается граница вокруг каждой ячейки после применения LoadFromCollection. В то время как AutoFitColumns правильно применяется, применяемый стиль границы применяется только к Cells[«D1»], но не к таблице.
BorderAround успешно помещает границу вокруг всей таблицы, но я скорее применим к границе к ячейкам внутри таблицы. Есть ли способ, которым я могу это сделать?
// 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(); Лучший ответ:
Если я знаю количество столбцов, которые имеет модель, я могу подсчитать количество строк с помощью функции и сделать это:
var modelRows = exportQuery.Count()+1; string modelRange = «D1:F» + modelRows.ToString(); var modelTable = worksheet.Cells[modelRange];
Или, с большим контекстом. Я подтвердил, что EPPlus примет строковую переменную в ячейках [], что позволяет мне выбрать всю таблицу и правильно применить мой стиль границ и AutoFitColumns{}. Все, что мне нужно сделать вручную, – введите начальный столбец и конечный столбец в переменной 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();