Как я могу предотвратить печать левой колонки "желоб" (номер строки) (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 ответа:
В объекте 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(); }
, что дает это на выходе:
И это в предварительном просмотре (я прокрутил вниз несколько страниц):