Документы MS Word широко используются для хранения и обмена информацией. В некоторых случаях может потребоваться разделить данные из документа Word, которые могут находиться в разных разделах или на разных страницах. Кроме того, вам может понадобиться разделить страницы одного документа на несколько документов. В соответствии с такими сценариями эта статья призвана показать вам, как программно разделить документы MS Word с помощью C#.
- C# API для разделения документов MS Word
- Разделить документы Word по разделам с помощью С#
- Разделить документы Word постранично с помощью С#
- Используйте диапазон страниц для разделения документов Word с помощью С#
C# API для разделения документов MS Word
Aspose.Words for .NET — это мощный API для обработки текстов, который позволяет создавать документы MS Word и управлять ими с помощью C# или VB.NET. Наряду с этим, он также позволяет разбивать документы MS Word по разделам, страницам или диапазонам страниц. Вы можете скачать API или установить его в своем приложении с помощью NuGet.
PM> Install-Package Aspose.Words
Разделить документы Word по разделам с помощью С#
Разделы относятся к частям документа, к которым может применяться различное форматирование. Раздел может состоять из одной страницы, диапазона страниц или всего документа. Разрывы разделов используются для разделения документа на несколько разделов. Ниже приведены шаги по разделению документа Word на его разделы с помощью Aspose.Words для .NET.
- Загрузите документ Word с помощью класса Document.
- Прокрутите разделы страницы, используя свойство Document.Sections.
- Клонируйте раздел в новый объект Section.
- Создайте новый объект Документ.
- Добавьте раздел в новый Документ с помощью метода Документ.Разделы.Добавить(Раздел).
- Сохраните документы с помощью метода Document.Save(String).
В следующем примере кода показано, как разделить документы MS Word на разделы с помощью C#.
// Откройте документ Word
Document doc = new Document("document.docx");
for (int i = 0; i < doc.Sections.Count; i++)
{
// Разделить документ на более мелкие части, в данном случае по разделам
Section section = doc.Sections[i].Clone();
// Создать новый документ
Document newDoc = new Document();
newDoc.Sections.Clear();
Section newSection = (Section)newDoc.ImportNode(section, true);
newDoc.Sections.Add(newSection);
// Сохраняйте каждый раздел как отдельный документ
newDoc.Save($"splitted_{i}.docx");
}
Разделить документы Word постранично с помощью С#
Может быть случай, когда документ Word содержит информацию аналогичного типа на каждой странице, например счета-фактуры или квитанции. В таком случае вы можете разделить страницы документа, чтобы сохранить каждый счет как отдельный документ. Для разделения документов страница за страницей вы можете использовать вспомогательный класс DocumentPageSplitter на основе Aspose.Words для .NET. Вы можете просто скопировать класс в свой проект и разделить документы Word постранично, выполнив следующие шаги.
- Загрузите документ Word, используя класс Document.
- Создайте объект класса DocumentPageSplitter и инициализируйте его с помощью объекта Document.
- Пролистайте страницы документа.
- Извлеките каждую страницу в новый объект Document с помощью метода DocumentPageSplitter.GetDocumentOfPage(int PageIndex).
- Сохраните каждый документ, используя метод Document.Save(String).
В следующем примере кода показано, как разделить документ Word на страницы с помощью C#.
// Откройте документ Word
Document doc = new Document("Document.docx");
// Создайте и инициализируйте разделитель страниц документа
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);
// Сохраняйте каждую страницу как отдельный документ
for (int page = 1; page <= doc.PageCount; page++)
{
Document pageDoc = splitter.GetDocumentOfPage(page);
pageDoc.Save($"spliteed_{page}.docx");
}
Разделить документы Word по диапазону страниц с помощью С#
Вы также можете указать диапазон страниц, чтобы отделить его от исходного документа, используя класс DocumentPageSplitter. Например, если вам нужно разделить страницы с 2 на 4, просто укажите индекс начальной и конечной страницы в методе DocumentPageSplitter.GetDocumentOfPageRange(int StartIndex, int EndIndex).
В следующем примере кода показано, как разделить диапазон страниц из документа Word с помощью C#.
// Откройте документ Word
Document doc = new Document("document.docx");
// Создание и инициализация разделителя страниц документа
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);
// Получить диапазон страниц
Document pageDoc = splitter.GetDocumentOfPageRange(3, 6);
pageDoc.Save("splitted.docx");
Вывод
В этой статье вы узнали, как программно разделить документы MS Word с помощью C#. Сценарии разбиения документов Word на разделы, страницы и диапазоны страниц обсуждались вместе с примерами кода. Вы можете узнать больше об Aspose.Words для .NET, используя документацию.