Я использую Open XML для создания файла Excel, который имеет 9 столбцов. При печати этого Excel 6 столбцов находятся на первой странице, а следующие 3 столбца на следующей странице. Мне нужно, чтобы 9 строк были на одной странице. Ориентация должна быть портретной, а размер бумаги - А4.
spreadsheet.WorkbookPart.Workbook = new Workbook();
uint worksheetNumber = 1;
Sheets sheets = spreadsheet.WorkbookPart.Workbook.AppendChild(new Sheets());
WorksheetPart newWorksheetPart = spreadsheet.WorkbookPart.AddNewPart<WorksheetPart>();
Sheet sheet = new Sheet() { Id = spreadsheet.WorkbookPart.GetIdOfPart(newWorksheetPart), SheetId = worksheetNumber, Name = excelName };
sheets.Append(sheet);
OpenXmlWriter writer = OpenXmlWriter.Create(newWorksheetPart, Encoding.ASCII);
writer.WriteStartElement(new Worksheet());
writer.WriteStartElement(new SheetData());
foreach (DataTable dataDt in datataDs.Tables)
WriteDataTableToExcelWorksheet(dataDt, newWorksheetPart, writer, pullListFlag, TopcolNames);
writer.WriteEndElement();
writer.WriteEndElement();
writer.Close();
WorkbookPart workbookPart = spreadsheet.WorkbookPart;
WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
AddStyleSheet(spreadsheet);
worksheetPart.Worksheet.Save();
spreadsheet.WorkbookPart.Workbook.Save();
MergeCells(spreadsheet, "A1", "C1");
MergeCells(spreadsheet, "D1", "F1");
MergeCells(spreadsheet, "G1", "I1");
CreateCustomColumnWidth(worksheetPart, 30, (uint)GetColumnIndex("A1"), (uint)GetColumnIndex("I1"));
CreateCustomColumnWidth(worksheetPart, 15, (uint)GetColumnIndex("A2"), (uint)GetColumnIndex("C2"));
CreateCustomColumnWidth(worksheetPart, 15, (uint)GetColumnIndex("D2"), (uint)GetColumnIndex("I2"));