Программное добавление нижнего колонтитула в документ Office Word/Excel
Я ищу, чтобы построить решение, подобное этому: http://esqinc.com/section/products/4/idocid.html
то, что делает система, - это вставка имени файла документа в нижний колонтитул документа. Как это возможно программно (желательно в .NET)?
2 ответов
Я просто работал над кодом, где я уже делаю это в Excel из C#... Это частично, и это поможет вам начать...
Microsoft.Office.Interop.Excel.Application excelapp = new Microsoft.Office.Interop.Excel.Application();
excelapp.Visible = true;
Microsoft.Office.Interop.Excel._Workbook book = (Microsoft.Office.Interop.Excel._Workbook)excelapp.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); ;
Microsoft.Office.Interop.Excel._Worksheet sheet = (Microsoft.Office.Interop.Excel._Worksheet)book.ActiveSheet;
sheet.get_Range("A1", "N999").Font.Size = "8";
sheet.PageSetup.PaperSize = Microsoft.Office.Interop.Excel.XlPaperSize.xlPaperLegal;
sheet.PageSetup.Orientation = Microsoft.Office.Interop.Excel.XlPageOrientation.xlLandscape;
sheet.PageSetup.PrintTitleRows = ":";
sheet.PageSetup.PrintTitleColumns = "$A:$B";
там больше кода, чем нужно для этой конкретной задачи, а соответствующие строки для заголовка (или что-то, что повторяется вверху каждой страницы):
sheet.PageSetup.PrintTitleRows = ":";
sheet.PageSetup.PrintTitleColumns = "$A:$B";
Edit-Добавлено
вот ссылка на документацию MSDN, для всех ваше руководство по необходимости.
http://msdn.microsoft.com/en-us/library/bb209015 (офис.12).aspx
надеюсь, это поможет вам начать. Для добавления текста в нижний колонтитул можно использовать следующий псевдо-код c#. Только вам придется сделать это в макросе, чтобы полностью автоматизировать это, а также определить имя документа, который будет добавлен. Наконец, вызовите макрос во время сохранения документа, чтобы добавить текст нижнего колонтитула.
foreach ( Section wordSection in wordDoc.Sections )
{
HeaderFooter footer = wordSection.Footers[ Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary ];
footer.Range.Select( );
footer.Range.Text = footerTxt;
hf.Range.Font.Size = 10;
wordApp.Selection.Paragraphs[ 1 ].Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
wordApp.Selection.Paragraphs[ 1 ].SpaceAfter = 0;
}