EDIT: Есть еще одна деталь, которую я оставил с моим оригинальным сообщением. Программа использует поток шаблонов, а не конкретный шаблон для команды «.Open». Поток шаблон инициализируется с этим блоком кода:Добавить нижний колонтитул в существующую таблицу OpenXML
public void Initialize(Stream templateStream)
{
spreadsheet = SpreadsheetDocument.Open(templateStream, true);
}
Я до сих пор исследования, но кто-нибудь знает последствия использования потока для объекта HeaderFooter в OpenXML?
Я новичок в OpenXML и все еще в процессе чтения и изучения того, что могу от этого массивного SDK. Я унаследовал программу C# MVC.NET, которая использует OpenXML для отображения информации в электронной таблице Excel, и все это работает, но теперь мне нужно добавить нижний колонтитул к той же электронной таблице, и я поражаю некоторые кирпичные стены в своем OpenXML знание.
Я положил информацию колонтитула я хотел в электронную таблицу, открыл его с Open XML SDK Productivity Tool и нашел этот код под < .x: oddFooter (OddFooter):
// Creates an OddFooter instance and adds its children.
public OddFooter GenerateOddFooter()
{
OddFooter oddFooter1 = new OddFooter();
oddFooter1.Text = "&L&\"Times New Roman,Regular\"Page &P of &N&C&\"Times New Roman,Regular\"Generated On: <Date/Time> Central&R&\"Times New Roman,Regular\"Report";
return oddFooter1;
}
И этот код один выравнивать под <> х: HeaderFooter (OddFooter):
// Creates an HeaderFooter instance and adds its children.
public HeaderFooter GenerateHeaderFooter()
{
HeaderFooter headerFooter1 = new HeaderFooter();
OddFooter oddFooter1 = new OddFooter();
oddFooter1.Text = "&L&\"Times New Roman,Regular\"Page &P of &N&C&\"Times New Roman,Regular\"Generated On: <Date/Time> Central&R&\"Times New Roman,Regular\"Report";
headerFooter1.Append(oddFooter1);
return headerFooter1;
}
Теперь я, конечно, нужно добавить информацию колонтитула где-то, и это, где я застрял. В <> х: лист (Worksheet) Я вижу эту строку кода:
worksheet1.Append(headerFooter1);
Это выглядело достаточно легко, но когда я посмотрел на код приложения, я не нашел объект рабочего листа, добавляемых к. Я думал, что был близок со следующей строкой кода:
spreadsheet.WorkbookPart.Workbook.Append(headerFooter1);
но это ничего не давало. В приложении я вижу объект SpreadsheetDocument и ссылки на OpenXMLParts ... мне нужно получить часть электронной таблицы для добавления? Или мне нужно использовать другой подход с таблицей в сравнении с объектом рабочей таблицы? Нужно ли мне материализовать текущий рабочий лист, а затем добавить?
У меня такое чувство, что это простое решение, но, как я уже сказал, я все еще изучаю SDK.
Спасибо!