Стоп-кадры в 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);
        }
    }
}