Dokumentumok mentése és exportálása
Dokumentumok mentése és exportálása
Document.Save egy dokumentumot ír egy fájlba vagy adatfolyamba a célformátumban. A formátum vagy a fájlkiterjesztésből következtethető, vagy kifejezetten SaveFormat értékként van megadva, vagy egy SaveOptions alosztály által vezérelhető — OoxmlSaveOptions, MarkdownSaveOptions vagy TxtSaveOptions — a formátumspecifikus vezérléshez. Ez az útmutató lefedi a Save túlterheléseket, a SaveFormat enumot, az OOXML mentési beállításokat, a Markdown és egyszerű szöveg exportot, valamint a formátum felismerését konvertálás előtt.
Mentés a Document.Save használatával
A legegyszerűbb hívás, Document.Save(fileName), a célformátumot a fájl kiterjesztéséből következteti. Save(fileName, saveFormat) a formátumot kifejezetten megadja a kiterjesztéstől függetlenül, és Save(fileName, saveOptions) (vagy a megfelelő Stream túlterhelések) egy SaveOptions alosztályt elfogad a formátumspecifikus beállításokhoz. SaveOptions.CreateSaveOptions(saveFormat) egy statikus gyár, amely visszaadja a megfelelő beállítási alosztályt egy adott SaveFormat számára, az alapértelmezésekkel már beállítva.
Formátum választása a SaveFormat használatával
A SaveFormat enum felsorolja az összes mentési formátum azonosítót, amelyet a könyvtár felismer. Document.Save teljes mértékben ír és olvas is ennek a kiadásnak a fő dokumentumformátumaiban — DOCX, DOCM, DOTX, DOTM és Flat OPC (plusz a makrók támogatott és sablon változatai) — valamint a Markdown és egyszerű szöveg formátumokban. FileFormatUtil.SaveFormatToExtension(saveFormat) és ExtensionToSaveFormat(extension) konvertálnak az enum és egy fájlkiterjesztés karakterlánc között.
Néhány SaveFormat érték az enumban a API teljessége érdekében szerepel, de olyan formátumokra vonatkozik, amelyeket ez a lecsökkent, nyílt forráskódú kiadás nem valósít meg működő olvasóval vagy íróval — ilyen formátumba való mentés próbálkozása olyan kimenetet eredményez, amely nem egyenértékű a forrásdokumentummal. Maradj a fent felsorolt formátumoknál a megbízható körkörös átalakításhoz.
OOXML lehetőségek: DOCX, DOCM, DOTX, DOTM és Flat OPC
OoxmlSaveOptions konfigurálja a mentést bármelyik Open XML formátumba. A SaveFormat tulajdonsága választja ki, hogy melyik konkrét változatot írja; a Password megad egy nyílt jelszót a mentett fájlhoz (függetlenül Document.Protect szerkesztési korlátozásaitól); a Compliance kiválasztja az OOXML szigorúsági szintet; és a CompressionLevel / Zip64Mode vezérlik az alapul szolgáló ZIP csomagolást. Készíts egyet a new OoxmlSaveOptions(saveFormat) segítségével vagy a SaveOptions.CreateSaveOptions(saveFormat) útján.
Exportálás Markdown-be
MarkdownSaveOptions szabályozza a Markdown exportot: a ListExportMode és LinkExportMode határozzák meg, hogyan jelennek meg a listák és a hiperhivatkozások, a ImagesFolder / ImagesFolderAlias szabályozzák, hogy hová íródjanak a kinyert képek és hogyan hivatkozzanak rájuk, a ExportImagesAsBase64 ehelyett beágyazza őket soron belül, és a TableContentAlignment befolyásolja a generált táblázat jelölését. Adj egy MarkdownSaveOptions példányt a Document.Save(fileName, saveOptions)-nek egy .md fájlnévvel, vagy állítsd be explicit módon a SaveFormat-t.
Exportálás egyszerű szövegbe
TxtSaveOptions (a TxtSaveOptionsBase alapszintjén keresztül, amelyet a MarkdownSaveOptions is megoszt) szabályozza az egyszerű szöveg exportot: a Encoding állítja be a karakterkódolást, a ParagraphBreak a sorvége karakterláncot, a MaxCharactersPerLine tördelje a hosszú sorokat, a SimplifyListLabels normalizálja a lista pontokat/számokat egyszerű karakterekké, és a PreserveTableLayout megkísérli a táblázatos oszlopok térközzel történő igazítását.
Formátum felismerése konvertálás előtt
Mielőtt konvertálnál egy olyan fájlt, amelynek formátumát még nem ismered, a FileFormatUtil.DetectFileFormat(fileName) egy FileFormatInfo-t ad vissza a felismert LoadFormat-vel. Kombináld ezt a FileFormatUtil.LoadFormatToSaveFormat(loadFormat)-val, hogy eldöntsd, lehetséges-e egy körúton keresztül ezen kiadás által támogatott formátumokon, mielőtt megpróbálnád a Document.Save-t.
Tippek és legjobb gyakorlatok
- Használja a
Save(fileName, saveOptions)helyett a simaSave(fileName, saveFormat)túlterhelést, amikor formátum-specifikus viselkedést kell szabályozni, például a Markdown lista megjelenítést vagy az OOXML tömörítést. - Állítsa be a
OoxmlSaveOptions.Passwordegy nyílt jelszóval védett fájlhoz; ez különbözik aDocument.Protect-től, amely korlátozza a szerkesztést, de nem titkosítja a fájlt. - Válassza a
MarkdownSaveOptions.ExportImagesAsBase64egyetlen önálló Markdown fájlhoz, vagy aImagesFolder-t, ha egy mappát szeretne a kicsomagolt képfájlokkal a Markdown mellett. - Hívja meg a
SaveOptions.CreateSaveOptions(saveFormat)helyett, hogy manuálisan ne kelljen kiválasztani a konkrét opciók osztályt, amikor a célformátum futásidőben kerül meghatározásra. - Ellenőrizze a célformátumot a
FileFormatUtilsegítségével a konvertálás előtt, ahelyett, hogy csak a fájlkiterjesztésre támaszkodna, amely helytelen vagy félrevezető lehet.
Gyakori problémák
| Probléma | Oka | Javítás |
|---|---|---|
Save(fileName) a rossz formátumot választja | A fájl kiterjesztése nem egyezik a kívánt formátummal | Használja Save(fileName, saveFormat) vagy Save(fileName, saveOptions) a formátum egyértelműsítéséhez |
| A mentett OOXML fájl nem nyílik meg jelszóval | OoxmlSaveOptions.Password nem volt beállítva a mentés előtt | Hozzon létre egy OoxmlSaveOptions, állítsa be Password, és adja át a Save számára |
| A Markdown export váratlanul szétteríti a képfájlokat | Az alapértelmezett MarkdownSaveOptions viselkedés a képeket fájlokba menti | Állítsa be ExportImagesAsBase64 = true egyetlen önálló fájlhoz, vagy állítsa be ImagesFolder értékét, hogy szabályozza, hová kerülnek a képek |
| A egyszerű szöveges export elveszíti a táblázat oszlopok igazítását | TxtSaveOptions.PreserveTableLayout alapértelmezett marad | Állítsa be a PreserveTableLayout = true mentés előtt |
FAQ
Hogyan menthetek egy dokumentumot egy adott formátumba a fájlkiterjesztésétől függetlenül?
Hívja meg a Save(fileName, saveFormat) egy explicit SaveFormat értékkel, vagy a Save(fileName, saveOptions) egy megfelelő SaveOptions alosztállyal.
Mely formátumokat olvas és ír ez a kiadás mindkét irányban?
DOCX, DOCM, DOTX, DOTM, Flat OPC (plusz a makrókkal ellátott és sablonváltozatai), Markdown és egyszerű szöveg.
Hogyan védhetek jelszóval egy mentett fájlt?
Állítsa be a Password értéket egy OoxmlSaveOptions példányon, és adja át a Document.Save(fileName, saveOptions)-nek.
Hogyan szabályozhatom a sorvégeket egy exportált szövegfájlban?
Állítsa be a ParagraphBreak értéket egy TxtSaveOptions példányon mentés előtt.
Hogyan ellenőrizhetem, hogy egy fájl milyen formátumú, mielőtt átkonvertálnám?
Hívja meg a FileFormatUtil.DetectFileFormat(fileName) és olvassa el a visszakapott FileFormatInfo.LoadFormat.
API Reference összefoglaló
| Osztály/Módszer | Leírás |
|---|---|
Document.Save | A dokumentumot egy fájlba, adatfolyamba vagy kimeneti célba írja a kiválasztott formátumban. |
SaveFormat | Enum, amely a mentési művelet célformátumát azonosít. |
SaveOptions | Formátum-specifikus mentési konfigurációhoz tartozó absztrakt bázisosztály; CreateSaveOptions(saveFormat) visszaadja a megfelelő alosztályt. |
OoxmlSaveOptions | A DOCX, DOCM, DOTX, DOTM és Flat OPC beállításai — jelszó, megfelelőség, tömörítés. |
MarkdownSaveOptions | Markdown exportálás beállításai — lista/hivatkozás megjelenítés, képek kezelése. |
TxtSaveOptions / TxtSaveOptionsBase | Egyszerű szöveg exportálás beállításai — kódolás, sortörések, táblázat elrendezése. |
FileFormatUtil.DetectFileFormat | Felismeri a fájl formátumát, mielőtt betöltené vagy átalakítaná. |
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormat | Átalakít egy SaveFormat érték és egy fájlkiterjesztés között. |