Стоп-кадры в Excel с использованием С# и EPPlus
Я хочу заморозить первые 5 столбцов и три строки в excel.
Для этого я написал следующий код
Worksheets.View.FreezePanes(5, 5);
но он также замораживает столбцы в первых 4 строках.
Я хочу заморозить первые 4 столбца в excel, за исключением первых 4 строк.
Можно ли это сделать?
Ответы
Ответ 1
Первое значение - сколько строк вы хотите заморозить, а второе - количество столбцов, которые вы хотите заморозить. Поэтому, чтобы заморозить первые 3 строки и 5 столбцов, вам нужно будет назвать это следующим образом:
Worksheets.View.FreezePanes(3, 5);
Вы также можете взглянуть на этот вопрос SO для получения дополнительной информации о FreezePanes
.
Ответ 2
Для меня заморозить первую строку после работы кода. Я не уверен, что там есть.
worksheet.View.FreezePanes(2,1);
Ответ 3
Из объекта ExcelWorksheet откройте свойство Вид.
В возвращаемом объекте ExcelWorksheetView вызовите метод FreezePanes (строка, столбец), передающий строку и столбец первой ячейки, которая НЕ заморожена.
Например, чтобы заморозить первые полные две панели Excel Worksheet, вам необходимо передать в столбец (3,1) параметр строки:
worksheetObject.View.FreezePanes(3, 1);
Итак, чтобы Заморозить только первую строку полностью, вы можете теперь только позвонить worksheetObject.View.FreezePanes(2,1);
!
Это также упоминается в официальном примере EPPlus.
Поэтому для ответа на оригинальный вопрос, поставленный пользователем @user2148124, ответ должен быть
worksheetObject.View.FreezePanes(3, 5);
Ответ 4
Вы можете вызвать метод sheet.FreezePanes(int rowIndex, int columnIndex), чтобы установить область замерзания.
Пример кода:
using System;
using Spire.Xls;
using System.Drawing;
namespace FreezePane
{
class Program
{
static void Main(string[] args)
{
//Load File
Workbook workbook = new Workbook();
workbook.LoadFromFile
(@"E:\Work\Documents\ExcelFiles\UserInfo.xlsx");
Worksheet sheet = workbook.Worksheets[0];
//Freeze Top Row
sheet.FreezePanes(2, 1);
//Save and Launch
workbook.SaveToFile("FreezePane.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start(workbook.FileName);
}
}
}