WordDocumentHelpers 1.0.3
See the version list below for details.
dotnet add package WordDocumentHelpers --version 1.0.3
NuGet\Install-Package WordDocumentHelpers -Version 1.0.3
<PackageReference Include="WordDocumentHelpers" Version="1.0.3" />
<PackageVersion Include="WordDocumentHelpers" Version="1.0.3" />
<PackageReference Include="WordDocumentHelpers" />
paket add WordDocumentHelpers --version 1.0.3
#r "nuget: WordDocumentHelpers, 1.0.3"
#:package WordDocumentHelpers@1.0.3
#addin nuget:?package=WordDocumentHelpers&version=1.0.3
#tool nuget:?package=WordDocumentHelpers&version=1.0.3
WordDocumentHelpers
Библиотека extension-методов для работы с Word-документами. Таргет — netstandard2.0
(минимум, который требуют зависимости), потребляется из любого современного .NET.
Два независимых движка:
- Microsoft.Office.Interop.Word — методы, автоматизирующие установленный Word через COM
(подсчёт страниц, поиск номера страницы абзаца по тексту). Требуют установленного Word и
работают только на Windows. Interop-типы встраиваются (
EmbedInteropTypes). - Spire.Doc (FreeSpire.Doc) — замена текста без установленного Word.
Установка
dotnet add package WordDocumentHelpers
Функции
Все методы — статические; помеченные this являются extension-методами.
GetPagesCount
public static int GetPagesCount(string filepath)
Открывает документ в новом экземпляре Word и возвращает общее число страниц.
Движок: Interop. Запускает Word (Visible = true) и закрывает его перед возвратом.
GetParagraphPageByText
public static int GetParagraphPageByText(this Word.Document document, string text)
Возвращает номер страницы первого абзаца, текст которого содержит text.
Если совпадений нет — возвращает -1. Движок: Interop.
GetParagraphPageByTextParallel
public static int GetParagraphPageByTextParallel(this Word.Document document, string text)
То же, что GetParagraphPageByText, но при отсутствии совпадения бросает
InvalidOperationException (использует First, а не FirstOrDefault). Движок: Interop.
Имя историческое — параллельной обработки внутри нет.
GetParagraphPageByTextFromIndex
public static int GetParagraphPageByTextFromIndex(this Word.Document document, string text, int startParagraph)
Ищет первый абзац с текстом text, начиная с 0-based индекса startParagraph,
и возвращает номер его страницы. Если до конца документа совпадений нет — -1. Движок: Interop.
GetParagraphsPages
public static Dictionary<string, int> GetParagraphsPages(this Word.Document document)
Строит словарь «текст абзаца → номер страницы» по всем абзацам документа. При одинаковом тексте у нескольких абзацев остаётся последнее значение (last-wins). Движок: Interop.
GetParagraphIndex
public static int GetParagraphIndex(this Word.Paragraph paragraph)
Возвращает номер страницы, на которой заканчивается переданный абзац
(wdActiveEndPageNumber). Движок: Interop.
Имя историческое — метод отдаёт номер страницы, а не индекс абзаца.
ReplaceText
public static bool ReplaceText(this Spire.Doc.Document document, string oldText, string newText)
Заменяет oldText на newText во всех секциях: в абзацах и в ячейках таблиц.
Возвращает true, если хотя бы одна замена произошла. Движок: Spire.Doc.
Примеры
// Interop (нужен установленный Word)
var word = new Microsoft.Office.Interop.Word.Application();
var doc = word.Documents.Open(@"C:\contract.docx");
int total = WordDocumentHelper.GetPagesCount(@"C:\contract.docx");
int page = doc.GetParagraphPageByText("Раздел 5"); // -1, если не найдено
var map = doc.GetParagraphsPages(); // текст абзаца -> страница
// Spire (без Word)
var sdoc = new Spire.Doc.Document(@"C:\template.docx");
bool changed = sdoc.ReplaceText("НОМЕР_ДЕЛА", "А40-12345/2026");
sdoc.SaveToFile(@"C:\out.docx");
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- FreeSpire.Doc (>= 14.4.0)
- Microsoft.CSharp (>= 4.7.0)
- Microsoft.Office.Interop.Word (>= 15.0.4797.1004)
- Microsoft.Windows.Compatibility (>= 10.0.8)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.