Программно добавить нижний колонтитул в документ Office Word / Excel - PullRequest
6 голосов
/ 03 августа 2010

Я ищу решение, похожее на это: http://esqinc.com/section/products/4/idocid.html

Система делает вставку имени файла документа в нижний колонтитул документа. Как это возможно программно (желательно в .NET)?

Ответы [ 2 ]

6 голосов
/ 03 августа 2010

Надеюсь, это поможет вам начать.Следующий псевдо-код 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;
}
4 голосов
/ 03 августа 2010

Мне просто довелось работать над кодом, где я уже делаю это в 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 = "$3:$5";
sheet.PageSetup.PrintTitleColumns = "$A:$B";

Там больше кода, чем нужно для этой конкретной задачи, но соответствующие строки для заголовка (или чего-то, что повторяется вверху каждой страницы):

sheet.PageSetup.PrintTitleRows = "$3:$5";
sheet.PageSetup.PrintTitleColumns = "$A:$B";

Редактировать - Добавлено

Ниже приведена ссылка на документацию MSDN для всех ваших потребностей в Office Interop.

http://msdn.microsoft.com/en-us/library/bb209015(office.12).aspx

...