Как я могу предотвратить печать левой колонки "желоб" (номер строки) (EPPlus)?


"предварительный просмотр" электронной таблицы, созданной с помощью моего кода EPPlus, показывает столбец номер строки / желоба (столбец 0, так сказать):

Введите описание изображения здесь

Как я могу программно предотвратить номер желоба / строки ("трещина?") колонка из типографии?

В настоящее время мой код настройки печати выглядит следующим образом:

private void ConfigureCustomerSheetForPrinting()
{
    string columnName = GetExcelTextColumnName(customerWorksheet.Dimension.End.Column);
    string printArea = string.Format("A1:{0}{1}", columnName, customerWorksheet.Dimension.End.Row);
    customerWorksheet.PrinterSettings.PrintArea = customerWorksheet.Cells[printArea];
    customerWorksheet.PrinterSettings.FitToPage = true;
    customerWorksheet.PrinterSettings.Orientation = eOrientation.Landscape;
    customerWorksheet.View.ZoomScale = 100;
    customerWorksheet.PrinterSettings.FitToPage = true;
    customerWorksheet.PrinterSettings.FitToHeight = 100;
    customerWorksheet.PrinterSettings.Scale = 100;

    customerWorksheet.PrinterSettings.LeftMargin = (decimal).5 / 2.54M; 
    customerWorksheet.PrinterSettings.RightMargin = (decimal).5 / 2.54M;
    customerWorksheet.PrinterSettings.TopMargin = (decimal).5 / 2.54M;
    customerWorksheet.PrinterSettings.BottomMargin = (decimal).5 / 2.54M;
    customerWorksheet.PrinterSettings.HeaderMargin = (decimal).5 / 2.54M;
    customerWorksheet.PrinterSettings.FooterMargin = (decimal).5 / 2.54M;
}
2 2

2 ответа:

В объекте PrinterSettings есть свойство ShowHeaders, которое должно делать то, что вам нужно. Кажется, у вас его там нет, так что вы можете пропустить это.

customerWorksheet.PrinterSettings.ShowHeaders = false; customerWorksheet.View.ShowHeaders = false;

Вы можете увидеть это более явно в исходном коде класса ExcelPrinterSettings.

/// <summary>
/// Print headings (column letter and row numbers)
/// </summary>
public bool ShowHeaders
{
    get
    {
        return GetXmlNodeBool(_headersPath, false);
    }
    set
    {
        SetXmlNodeBool(_headersPath, value, false);
    }
}

Надеюсь, это поможет Б.;)

Если я понимаю, что вы просите, вы хотите показать заголовки столбцов (скажем, "строка 0" как "A", "B", "C",...) но не показывать заголовки строк (скажем "столбец 0" как "1", "2" 3", и т.д.). Если так, то я никогда не видел способа сделать это. Вы можете скрыть оба заголовка row/col или показать оба, но не либо-либо в соответствии с DocumentFormat .функция OPENXML.Электронная таблица.PrintOptions . В основном Вариант ShowHeaders, о котором вы с Ричардо говорили.

Единственная достойная работа, которую я могу придумать, - это подделать ее. с чем-то вроде этого. Это включает в себя установку первой строки в качестве повтора. Я также установил первую строку замороженной, но это необязательно:

using (var pck = new ExcelPackage(fi))
{
    var wb = pck.Workbook;
    var ws = wb.Worksheets.Add("Sheet1");

    //Make sure headers are not show
    ws.PrinterSettings.ShowHeaders = false;

    //Header
    ws.Cells[1, 1].Value = "A";
    ws.Cells[1, 2].Value = "B";
    ws.Cells[1, 3].Value = "C";
    ws.Cells[1, 4].Value = "D";

    var headerrange = ws.Cells[1, 1, 1, 4];
    headerrange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
    headerrange.Style.Border.Top.Style = ExcelBorderStyle.Thin;
    headerrange.Style.Border.Bottom.Style = ExcelBorderStyle.Thin;
    headerrange.Style.Border.Left.Style = ExcelBorderStyle.Thin;
    headerrange.Style.Border.Right.Style = ExcelBorderStyle.Thin;

    ws.View.FreezePanes(1,4);
    ws.PrinterSettings.RepeatRows = new ExcelAddress("$1:$1");

    //Some data > 1 page
    for (var i = 0; i < 1000; i++)
    {
        ws.Cells[2 + i, 1].Value = DateTime.Now.AddDays(i);
        ws.Cells[2 + i, 2].Value = i;
        ws.Cells[2 + i, 3].Value = i*100;
        ws.Cells[2 + i, 4].Value = Path.GetRandomFileName();
    }

    //Save it
    pck.Save();
}

, что дает это на выходе:

Введите описание изображения здесь

И это в предварительном просмотре (я прокрутил вниз несколько страниц):

Введите описание изображения здесь