Jak wyeksportować i zapisać dokumenty Word w .NET

Jak wyeksportować i zapisać dokumenty Word w .NET

Ten przewodnik pokazuje, jak eksportować i zapisywać dokument Word przy użyciu Aspose.Words FOSS dla .NET: zapisywanie z formatem wywnioskowanym lub określonym explicite, konfigurowanie opcji zapisu OOXML, eksport do Markdown, eksport do zwykłego tekstu oraz wykrywanie formatu pliku przed konwersją. Aspose.Words FOSS dla .NET jest dostępny poprzez NuGet lub przez budowanie ze źródeł.

Przewodnik krok po kroku

Krok 1: Pobierz bibliotekę

Sklonuj repozytorium i zbuduj Aspose.Words.sln w konfiguracji Release, a następnie dodaj odwołanie do projektu Aspose.Words.csproj z własnego projektu .NET, jak opisano w przewodniku instalacji. Dodaj using Aspose.Words; na początku każdego pliku, który zapisuje dokumenty.


Krok 2: Zapisz z formatem wywnioskowanym lub określonym explicite

Document.Save(fileName) wywnioskuje docelowy format z rozszerzenia pliku. Save(fileName, saveFormat) ustawia format explicite niezależnie od rozszerzenia, przyjmując wartość wyliczenia SaveFormat, a Save(fileName, saveOptions) (lub odpowiadające przeciążenia Stream) przyjmuje podklasę SaveOptions dla kontroli specyficznej dla formatu. SaveOptions.CreateSaveOptions(saveFormat) jest statyczną fabryką, która zwraca odpowiednią podklasę opcji z już ustawionymi wartościami domyślnymi dla danego SaveFormat. Ta edycja zapisuje w pełni zarówno do, jak i z DOCX, DOCM, DOTX, DOTM i Flat OPC (plus ich wersje z makrami i szablonami), a także Markdown i zwykły tekst.


Krok 3: Skonfiguruj opcje eksportu OOXML

OoxmlSaveOptions konfiguruje zapisywanie do dowolnej z wariantów Open XML. Jego własność SaveFormat wybiera konkretnie DOCX, DOCM, DOTX, DOTM lub Flat OPC; Password ustawia otwarte hasło na zapisywanym pliku, niezależnie od ograniczenia edycji Document.Protect; Compliance wybiera poziom ścisłości OOXML; a CompressionLevel / Zip64Mode kontrolują podstawowe pakowanie ZIP. Utwórz go za pomocą new OoxmlSaveOptions(saveFormat) lub przez SaveOptions.CreateSaveOptions(saveFormat).


Krok 4: Eksport do Markdown

MarkdownSaveOptions steruje eksportem do Markdown: ListExportMode i LinkExportMode określają, jak renderowane są listy i hiperłącza, ImagesFolder / ImagesFolderAlias kontrolują, gdzie trafiają wyodrębnione obrazy i jak są odwoływane, ExportImagesAsBase64 osadza je w tekście zamiast zapisywać jako osobne pliki, a TableContentAlignment wpływa na generowany znacznik tabeli. Przekaż instancję MarkdownSaveOptions do Document.Save(fileName, saveOptions) z nazwą pliku .md, lub ustaw jej SaveFormat jawnie.


Krok 5: Eksport do zwykłego tekstu

TxtSaveOptions (poprzez jego wspólną bazę TxtSaveOptionsBase, używaną również przez MarkdownSaveOptions) steruje eksportem tekstu zwykłego: Encoding ustawia kodowanie znaków, ParagraphBreak ustawia ciąg zakończenia wiersza, MaxCharactersPerLine zawija długie linie, SimplifyListLabels normalizuje wypunktowania i numery list do zwykłych znaków, a PreserveTableLayout utrzymuje wyrównanie kolumn tabel przy użyciu spacji.


Krok 6: Wykryj format przed konwersją

Przed konwersją pliku o nieznanym formacie, FileFormatUtil.DetectFileFormat(fileName) zwraca FileFormatInfo z wykrytym LoadFormat. Połącz go z FileFormatUtil.LoadFormatToSaveFormat(loadFormat), aby sprawdzić, czy ten format może przejść pełny cykl przez obsługiwane przez tę edycję formaty, zanim wywołasz Document.Save. Niektóre członki wyliczenia SaveFormat istnieją dla kompletności API, ale nazwy formatów w tej ograniczonej, otwarto-źródłowej edycji nie mają zaimplementowanego działającego czytnika ani pisarza; trzymaj się rodziny DOCX/DOCM/DOTX/DOTM/Flat OPC oraz Markdown i zwykłego tekstu dla niezawodnego wyniku.

Typowe problemy i rozwiązania

Save(fileName) zapisuje w niewłaściwym formacie. Rozszerzenie pliku nie pasuje do zamierzonego formatu. Użyj Save(fileName, saveFormat) or Save(fileName, saveOptions) aby explicite określić format zamiast polegać na rozszerzeniu.

Zapisany plik OOXML nie otworzy się przy użyciu hasła. OoxmlSaveOptions.Password nie został ustawiony przed zapisem. Utwórz OoxmlSaveOptions, ustaw Password, i przekaż go do Save.

Eksport Markdown nieoczekiwanie rozprasza pliki obrazów. Default MarkdownSaveOptions zachowanie wyodrębnia obrazy do osobnych plików. Ustaw ExportImagesAsBase64 = true dla jednego samodzielnego pliku Markdown, lub ustaw ImagesFolder aby kontrolować, gdzie umieszczane są obrazy.

Eksport w formacie zwykłego tekstu traci wyrównanie kolumn tabeli. TxtSaveOptions.PreserveTableLayout pozostaje w ustawieniu domyślnym. Ustaw PreserveTableLayout = true przed zapisaniem.

Najczęściej zadawane pytania

Jak zapisać w określonym formacie, niezależnie od rozszerzenia pliku?

Wywołaj Save(fileName, saveFormat) z wyraźną wartością SaveFormat, lub Save(fileName, saveOptions) z pasującą podklasą SaveOptions.

Które formaty umożliwiają round-trip w obie strony w tej edycji?

DOCX, DOCM, DOTX, DOTM, Flat OPC (plus ich wersje z obsługą makr i szablonów), Markdown oraz zwykły tekst.

Jak zabezpieczyć zapisany plik hasłem, aby nie mógł być nawet otwarty?

Ustaw Password w instancji OoxmlSaveOptions i przekaż ją do Document.Save(fileName, saveOptions).

Jak kontrolować zakończenia linii w wyeksportowanym pliku tekstowym?

Ustaw ParagraphBreak w instancji TxtSaveOptions przed zapisem.

Jak sprawdzić format pliku przed jego konwersją?

Wywołaj FileFormatUtil.DetectFileFormat(fileName) i odczytaj zwrócony FileFormatInfo.LoadFormat.

Zobacz także

 Polski