Spara och exportera dokument
Spara och exportera dokument
Document.Save skriver ett dokument till en fil eller ström i ett målformat. Formatet härleds antingen från en filändelse, ges explicit som ett SaveFormat-värde, eller styrs av en SaveOptions-subklass — OoxmlSaveOptions, MarkdownSaveOptions eller TxtSaveOptions — för format-specifik kontroll. Denna guide täcker Save-överladdningarna, SaveFormat-enumerationen, OOXML-sparalternativ, Markdown- och ren-text-export samt att upptäcka ett format innan konvertering.
Spara med Document.Save
Det enklaste anropet, Document.Save(fileName), härleder målformatet från filens ändelse. Save(fileName, saveFormat) gör formatet explicit oavsett ändelse, och Save(fileName, saveOptions) (eller de matchande Stream-överladdningarna) accepterar en SaveOptions-subklass för format-specifika inställningar. SaveOptions.CreateSaveOptions(saveFormat) är en statisk fabrik som returnerar rätt alternativ-subklass för en given SaveFormat med dess standardvärden redan satta.
Välja ett format med SaveFormat
Enumen SaveFormat listar alla spar-formatidentifierare som biblioteket känner igen. Document.Save skriver fullständigt både till och från den här utgåvans kärndokumentformat — DOCX, DOCM, DOTX, DOTM och Flat OPC (plus dess makro-aktiverade och mall-varianter) — samt Markdown och ren text. FileFormatUtil.SaveFormatToExtension(saveFormat) och ExtensionToSaveFormat(extension) konverterar mellan enumen och en filändelse-sträng.
Vissa SaveFormat-värden finns i enumen för API-kompletthet men motsvarar format som denna reducerade, open-source-utgåva inte har implementerat en fungerande läsare eller skribent för — att försöka spara till ett av dem ger utdata som inte är ekvivalent med källdokumentet. Håll dig till formaten som nämns ovan för pålitlig rundresning.
OOXML-alternativ: DOCX, DOCM, DOTX, DOTM och Flat OPC
OoxmlSaveOptions konfigurerar sparande till någon av Open XML-formaten. Dess SaveFormat-egenskap väljer vilken specifik variant som ska skrivas; Password sätter ett öppet lösenord på den sparade filen (oberoende av Document.Protect’s redigeringsrestriktioner); Compliance väljer OOXML:s striktighetsnivå; och CompressionLevel / Zip64Mode styr den underliggande ZIP-paketeringen. Skapa en med new OoxmlSaveOptions(saveFormat) eller via SaveOptions.CreateSaveOptions(saveFormat).
Exportera till Markdown
MarkdownSaveOptions styr en Markdown-export: ListExportMode och LinkExportMode bestämmer hur listor och hyperlänkar renderas, ImagesFolder / ImagesFolderAlias styr var extraherade bilder skrivs och hur de refereras, ExportImagesAsBase64 bäddar in dem inline istället, och TableContentAlignment påverkar den genererade tabellmarkupen. Skicka en MarkdownSaveOptions-instans till Document.Save(fileName, saveOptions) med ett .md filnamn, eller ange dess SaveFormat explicit.
Exportera till vanlig text
TxtSaveOptions (via sin bas TxtSaveOptionsBase, gemensam med MarkdownSaveOptions) styr export av vanlig text: Encoding anger teckenkodningen, ParagraphBreak anger radslutsträngen, MaxCharactersPerLine radbryter långa rader, SimplifyListLabels normaliserar listpunkter/nummer till vanliga tecken, och PreserveTableLayout försöker hålla tabellkolumner justerade med mellanslag.
Detektera ett format innan konvertering
Innan du konverterar en fil vars format du inte redan känner till, returnerar FileFormatUtil.DetectFileFormat(fileName) en FileFormatInfo med den upptäckta LoadFormat. Kombinera detta med FileFormatUtil.LoadFormatToSaveFormat(loadFormat) för att avgöra om en rundresa genom denna utgåvas stödda format är möjlig innan du försöker Document.Save.
Tips och bästa praxis
- Använd
Save(fileName, saveOptions)istället för den enklaSave(fileName, saveFormat)överlagringen när du behöver kontrollera format-specifikt beteende som Markdown-listrendering eller OOXML-komprimering. - Ställ in
OoxmlSaveOptions.Passwordför en fil som är skyddad med öppet lösenord; det är separat frånDocument.Protect, som begränsar redigering men inte krypterar filen. - Välj
MarkdownSaveOptions.ExportImagesAsBase64för en enda fristående Markdown-fil, ellerImagesFoldernär du vill ha en mapp med extraherade bildfiler bredvid Markdown-filen. - Anropa
SaveOptions.CreateSaveOptions(saveFormat)istället för att manuellt välja den konkreta alternativklassen när målformatet bestäms vid körning. - Verifiera ett målformat med
FileFormatUtilföre konvertering istället för att förlita dig på enbart filändelsen, som kan vara felaktig eller missvisande.
Vanliga problem
| Problem | Orsak | Lösning |
|---|---|---|
Save(fileName) väljer fel format | Filändelsen matchar inte det avsedda formatet | Använd Save(fileName, saveFormat) eller Save(fileName, saveOptions) för att göra formatet explicit |
| Sparad OOXML-fil kan inte öppnas med ett lösenord | OoxmlSaveOptions.Password var inte inställd innan sparandet | Konstruera ett OoxmlSaveOptions, ställ in Password, och skicka det till Save |
| Markdown-export sprider bildfiler oväntat | Standard MarkdownSaveOptions-beteende extraherar bilder till filer | Ställ in ExportImagesAsBase64 = true för en enda självständig fil, eller ställ in ImagesFolder för att kontrollera var bilderna hamnar |
| Export av ren text förlorar tabellkolumnens justering | TxtSaveOptions.PreserveTableLayout är kvar på standard | Ställ in PreserveTableLayout = true innan du sparar |
FAQ
Hur sparar jag ett dokument i ett specifikt format oavsett filändelse?
Anropa Save(fileName, saveFormat) med ett explicit SaveFormat-värde, eller Save(fileName, saveOptions) med en matchande SaveOptions-subklass.
Vilka format kan den här utgåvan läsa och skriva i båda riktningarna?
DOCX, DOCM, DOTX, DOTM, Flat OPC (plus dess makroaktiverade och mallvarianter), Markdown och vanlig text.
Hur skyddar jag en sparad fil med lösenord?
Ställ in Password på en OoxmlSaveOptions-instans och skicka den till Document.Save(fileName, saveOptions).
Hur styr jag radsluten i en exporterad textfil?
Ställ in ParagraphBreak på en TxtSaveOptions-instans innan du sparar.
Hur kontrollerar jag vilket format en fil har innan jag konverterar den?
Anropa FileFormatUtil.DetectFileFormat(fileName) och läs den returnerade FileFormatInfo.LoadFormat.
API Reference Sammanfattning
| Klass/Metod | Beskrivning |
|---|---|
Document.Save | Skriver dokumentet till en fil, ström eller utskriftsmål i ett valt format. |
SaveFormat | Enum som identifierar målformatet för en sparoperation. |
SaveOptions | Abstrakt basklass för format-specifik sparkonfiguration; CreateSaveOptions(saveFormat) returnerar den matchande underklassen. |
OoxmlSaveOptions | Alternativ för DOCX, DOCM, DOTX, DOTM och Flat OPC — lösenord, efterlevnad, komprimering. |
MarkdownSaveOptions | Alternativ för Markdown-export — list- och länkrendering, bildhantering. |
TxtSaveOptions / TxtSaveOptionsBase | Alternativ för vanlig text-export — kodning, radbrytningar, tabelllayout. |
FileFormatUtil.DetectFileFormat | Detekterar en fils format innan den laddas eller konverteras. |
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormat | Konvertera mellan ett SaveFormat-värde och en filändelse. |