Product | Versions |
---|---|
.NET |
net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows |
.NET Core |
netcoreapp1.0 netcoreapp1.1 netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard |
netstandard1.3 netstandard1.4 netstandard1.5 netstandard1.6 netstandard2.0 netstandard2.1 |
.NET Framework |
net35 net40 net403 net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48 net481 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen |
tizen30 tizen40 tizen60 |
Universal Windows Platform |
uap uap10.0 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
NuGet packages (560)
Showing the top 5 NuGet packages that depend on DocumentFormat.OpenXml:
Package | Downloads |
---|---|
ClosedXML
See release notes https://github.com/ClosedXML/ClosedXML/releases/tag/0.101.0 ClosedXML is a .NET library for reading, manipulating and writing Excel 2007+ (.xlsx, .xlsm) files. It aims to provide an intuitive and user-friendly interface to dealing with the underlying OpenXML API. |
36.3M |
Omnia.Fx.NetCore Package Description |
3.0M |
Microting.eForm
Package Description |
2.2M |
OpenXmlPowerTools The Open XML PowerTools provides guidance and example code for programming with Open XML Documents (DOCX, XLSX, and PPTX). It is based on, and extends the functionality of the Open XML SDK. It supports scenarios such as: |
2.2M |
SpreadsheetLight SpreadsheetLight is an open source Open XML spreadsheet .NET library written in C#, and is released under the MIT License. You can create new Open XML spreadsheets, or work with existing Open XML spreadsheets that are compatible with Microsoft Excel 2007/2010/2013 and LibreOffice Calc. No Office/Excel Interop needed. You do not need Microsoft Office/Excel to be installed. |
1.7M |
GitHub repositories (55)
Showing the top 5 popular GitHub repositories that depend on DocumentFormat.OpenXml:
Repository | Stars |
---|---|
microsoft/semantic-kernel Integrate cutting-edge LLM technology quickly and easily into your apps |
4.9K |
ClosedXML/ClosedXML ClosedXML is a .NET library for reading, manipulating and writing Excel 2007+ (.xlsx, .xlsm) files. It aims to provide an intuitive and user-friendly interface to dealing with the underlying OpenXML API. |
3.7K |
radzenhq/radzen-blazor Radzen Blazor is a set of 70+ free native Blazor UI components packed with DataGrid, Scheduler, Charts and robust theming including Material design and FluentUI. |
2.3K |
FastReports/FastReport Free Open Source Reporting tool for .NET6/.NET Core/.NET Framework that helps your application generate document-like reports |
2.2K |
mini-software/MiniExcel Fast, Low-Memory, Easy Excel .NET helper to import/export/template spreadsheet |
1.6K |
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [2.20.0]
### Added
— Added DocumentFormat.OpenXml.Office.Drawing.Y2022.ImageFormula namespace
— Added DocumentFormat.OpenXml.Office.Word.Y2023.WordML.Word16DU namespace
### Changed
— Marked `OpenXmlSimpleType.TextValue` as obsolete. This property was never meant to be used externally (#1284)
— Marked `OpenXmlPackage.Package` as obsolete. This will be an implementation detail in future versions and won’t be accessible (#1306)
— Marked `OpenXmlPackage.Close` as obsolete. This will be removed in a later release, use Dispose instead (#1371)
— Marked `OpenXmlPackage.SaveAs` as obsolete as it will be removed in a future version (#1378)
### Fixed
— Fixed incorrect file extensions for vbaProject files (#1292)
— Fixed incorrect file extensions for ImagePart (#1305)
— Fixed incorrect casing for customXml (#1351)
— Fixed AddEmbeddedPackagePart to allow correct extensions for various content types (#1388)
## [2.19.0] — 2022-12-14
### Added
— .NET 6 target with support for trimming (#1243, #1240)
— Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData namespace
— Added DocumentFormat.OpenXml.Office.PowerPoint.Y2019.Main.Command namespace
— Added DocumentFormat.OpenXml.Office.PowerPoint.Y2022.Main.Command namespace
— Added Child RichDataPivotCacheGuid to DocumentFormat.OpenXml.Office2010.Excel.PivotCacheDefinition
### Fixed
— Removed reflection usage where possible (#1240)
— Fixed issue where some URIs might be changed when cloning or creating copy (#1234)
— Fixed issue in FlatOpc generation that would not read the full stream on .NET 6+ (#1232)
— Fixed issue where restored relationships wouldn’t load correctly (#1207)
## [2.18.0] 2022-09-06
### Added
— Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2021.ExtLinks2021 namespace (#1196)
— Added durableId attribute to DocumentFormat.OpenXml.Wordprocessing.NumberingPictureBullet (#1196)
— Added few base classes for typed elements, parts, and packages (#1185)
### Changed
— Adjusted LICENSE.md to conform to .NET Foundation requirements (#1194)
— Miscellaneous changes for better perf for internal services
## [2.17.1] — 2022-06-28
### Removed
— Removed the preview namespace DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions because this namespace will currently create invalid documents.
### Fixed
— Restored the PowerPointCommentPart relationship to PresentationPart.
### Deprecated
— The relationship between the PowerPointCommentPart and the PresentationPart is deprecated and will be removed in a future version.
## [2.17.0] — Unreleased
### Added
— Added DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions namespace (#1151)
— Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotVersionInfo namespace (#1151)
### Fixed
— Moved PowerPointCommentPart relationship to SlidePart (#1137)
### Updated
— Removed public API analyzers in favor of EnablePackageValidation (#1154)
## [2.16.0] — 2022-03-14
### Added
— Added method `OpenXmlPart.UnloadRootElement` that will unload the root element if it is loaded (#1126)
### Updated
— Schema code generation was moved to the SDK project using C# code generators
Thanks to the following for their contribution:
@f1nzer
## [2.15.0] — 2021-12-16
### Added
— Added samples for strongly typed classes and Linq-to-XML in the `./samples` directory (#1101, #1087)
— Shipping additional libraries for some additional functionality in `DocumentFormat.OpenXml.Features` and `DocumentFormat.OpenXml.Linq`. See documentation in repo for additional details.
— Added extension method to support getting image part type (#1082)
— Added generated classes and `FileFormatVersions.Microsoft365` for new subscription model types and constraints (#1097).
### Fixed
— Fixed issue for changed mime type `model/gltf.binary` (#1069)
— DocumentFormat.OpenXml.Office.Drawing.ShapeTree is now available only in Office 2010 and above, not 2007.
— Correctly serialize `new CellValue(bool)` values (#1070)
— Updated known namespaces to be generated via an in-repo source generator (#1092)
— Some documentation issues around `FileFormatVersions` enum
Thanks to the following for their contributions:
@ThomasBarnekow
@stevenhansen
@JaimeStill
@jnyrup
## [2.14.0] — 2021-10-28
### Added
— Added generated classes for Office 2021 types and constraints (#1030)
— Added `Features` property to `OpenXmlPartContainer` and `OpenXmlElement` to enable a per-part or per-document state storage
— Added public constructors for `XmlPath` (#1013)
— Added parts for Rich Data types (#1002)
Thanks to the following for their contributions:
@rmboggs
@ThomasBarnekow
## [2.14.0-beta1] — 2021-09-20
### Added
— Added `Features` property to `OpenXmlPartContainer` and `OpenXmlElement` to enable a per-part or per-document state storage
— Added public constructors for `XmlPath` (#1013)
— Added parts for Rich Data types (#1002)
— Added methods to generate unique paragraph ids (#1000)
— Added generated classes for Office 2021 types and constraints (#1030)
Thanks to the following for their contributions:
@rmboggs
@ThomasBarnekow
## [2.13.1] — 2021-08-17
### Fixed
— Fixed some nullability annotations that were incorrectly defined (#953, #955)
— Fixed issue that would dispose a `TextReader` when creating an `XmlReader` under certain circumstances (#940)
— Fixed a documentation type (#937)
— Fixed an issue with adding additional children to data parts (#934)
— Replaced some documentation entries that were generic values with helpful comments (#992)
— Fixed a regression in AddDataPartRelationship (#954)
Thanks to the following for their contributions:
@ThomasBarnekow
@sorensenmatias
@lklein53
@lindexi
## [2.13.0] — 2021-05-13
### Added
— Additional O19 types to match Open Specifications (#916)
— Added generated classes for Office 2019 types and constraints (#882)
— Added nullability attributes (#840, #849)
— Added overload for `OpenXmlPartReader` and `OpenXmlReader.Create(…)` to ignore whitespace (#857)
— Added `HexBinaryValue.TryGetBytes(…)` and `HexBinaryValue.Create(byte[])` to manage the encoding and decoding of bytes (#867)
— Implemented `IEquatable<IdPartPair>` on `IdPartPair` to fix equality implementation there and obsoleted setters (#871)
### Fixed
— Fixed serialization of `CellValue` constructors to use invariant cultures (#903)
— Fixed parsing to allow exponents for numeric cell values (#901)
— Fixed massive performance bottleneck when `UniqueAttributeValueConstraint` is involved (#924)
### Deprecated
— Deprecated Office2013.Word.Person.Contact property. It no longer persists and will be removed in a future version (#912)
Thanks to the following for their contributions:
@lklein53
@igitur
## [2.13.0-beta2] — 2021-04-20
### Added
— Additional O19 types to match Open Specifications (#916)
### Deprecated
— Deprecated Office2013.Word.Person.Contact property. It no longer persists and will be removed in a future version (#912)
## [2.13.0-beta1] — 2021-03-09
### Added
— Added nullability attributes (#840, #849)
— Added overload for `OpenXmlPartReader` and `OpenXmlReader.Create(…)` to ignore whitespace (#857)
— Added `HexBinaryValue.TryGetBytes(…)` and `HexBinaryValue.Create(byte[])` to manage the encoding and decoding of bytes (#867)
— Implemented `IEquatable<IdPartPair>` on `IdPartPair` to fix equality implementation there and obsoleted setters (#871)
— Added generated classes for Office 2019 types and constraints (#882)
### Fixed
— Fixed serialization of `CellValue` constructors to use invariant cultures (#903)
— Fixed parsing to allow exponents for numeric cell values (#901)
## [2.12.3] — 2021-02-24
### Fixed
— Fixed issue where `CellValue` may validate incorrectly for boolean values (#890)
## [2.12.2] — 2021-02-16
### Fixed
— Fixed issue where `OpenSettings.RelationshipErrorHandlerFactory` creates invalid XML if the resulting URI is smaller than the input (#883)
## [2.12.1] — 2021-01-11
### Fixed
— Fixed bug where properties on `OpenXmlCompositeElement` instances could not be set to null to remove element (#850)
— Fixed `OpenXmlElement.RawOuterXml` to properly set null values without throwing (#818)
— Allow rewriting of all malformed URIs regardless of target value (#835)
## [2.12.0] — 2020-12-09
### Added
— Added `OpenSettings.RelationshipErrorHandlerFactory` to provide a way to handle URIs that break parsing documents with malformed links (#793)
— Added `OpenXmlCompositeElement.AddChild(OpenXmlElement)` to add children in the correct order per schema (#774)
— Added `SmartTagClean` and `SmartTagId` in place of `SmtClean` and `SmtId` (#747)
— Added `OpenXmlValidator.Validate(…, CancellationToken)` overrides to allow easier cancellation of long running validation on .NET 4.0+ (#773)
— Added overloads for `CellValue` to take `decimal`, `double`, and `int`, as well as convenience methods to parse them (#782)
— Added validation for `CellType` for numbers and date formats (#782)
— Added `OpenXmlReader.GetLineInfo()` to retrieve `IXmlLineInfo` of the underlying reader if available (#804)
### Fixed
— Fixed exception that would be thrown if attempting to save a document as FlatOPC if it contains SVG files (#822)
— Added `SchemaAttrAttribute` attributes back for backwards compatibility (#825)
### Removed
— Removed explicit reference to `System.IO.Packaging` on .NET 4.6 builds (#774)
## [2.11.3] — 2020-07-17
### Fixed
— Fixed massive performance bottleneck when `IndexReferenceConstraint` and `ReferenceExistConstraint` are involved (#763)
— Fixed `CellValue` to only include three most signficant digits on second fractions to correct issue loading dates (#741)
— Fixed a couple of validation indexing errors that might cause erroneous validation errors (#767)
— Updated internal validation system to not use recursion, allowing for better short-circuiting (#766)
## [2.11.2] — 2020-07-10
### Fixed
— Fixed broken source link (#749)
— Ensured compilation is deterministic (#749)
— Removed extra file in NuGet package (#749)
## [2.11.1] — 2020-07-10
### Fixed
— Ensure .NET Framework builds pass PEVerify (#744)
— `OpenXmlPartContainer.DeletePart` no longer throws an exception if there isn’t a match for the identifier given (#740)
— Mark obsolete members to not show up with Intellisense (#745)
— Fixed issue with `AttributeRequiredConditionToValue` semantic constraint where validation could fail on correct input (#746)
## [2.11.0] — 2020-05-21
### Added
— Added `FileFormatVersions.2019` enum (#695)
— Added `ChartSpace` and chart elements for the new 2016 namespaces. This allows the connecting pieces for building a chart part with chart styles like «Sunburst» (#687).
— Added `OpenXmlElementFunctionalExtensions.With(…)` extension methods, which offer flexible means for constructing `OpenXmlElement` instances in the context of pure functional transformations (#679)
— Added minimum Office versions for enum types and values (#707)
— Added additional `CompatSettingNameValues` values: `UseWord2013TrackBottomHyphenation`, `AllowHyphenationAtTrackBottom`, and `AllowTextAfterFloatingTableBreak` (#706)
— Added gfxdata attribue to Arc, Curve, Line, PolyLine, Group, Image, Oval, Rect, and RoundRect shape complex types per MS-OI29500 2.1.1783-1799 (#709)
— Added `OpenXmlPartContainer.TryGetPartById` to enable child part retrieval without exception if it does not exist (#714)
— Added `OpenXmlPackage.StrictRelationshipFound` property that indicates whether this package contains Transitional relationships converted from Strict (#716)
### Fixed
— Custom derived parts did not inherit known parts from its parent, causing failure when adding parts (#722)
### Changed
— Marked the property setters in `OpenXmlAttribute` as obsolete as structs should not have mutable state (#698)
## [2.10.1] — 2020-02-28
### Fixed
— Ensured attributes are available when `OpenXmlElement` is initialized with outer XML (#684, #692)
— Some documentation errors (#681)
— Removed state that made it non-thread safe to validate elements under certain conditions (#686)
— Correctly inserts strongly-typed elements before known elements that are not strongly-typed (#690)
## [2.10.0] — 2020-01-10
### Added
— Added initial Office 2016 support, including `FileFormatVersion.Office2016`, `ExtendedChartPart` and other new schema elements (#586)
— Added .NET Standard 2.0 target (#587)
— Included symbols support for debugging (#650)
— Exposed `IXmlNamespaceResolver` from `XmlPath` instead of formatted list of strings to expose namespace/prefix mapping (#536)
— Implemented `IComparable<T>` and `IEquatable<T>` on `OpenXmlComparableSimpleValue` to allow comparisons without boxing (#550)
— Added `OpenXmlPackage.RootPart` to easily access the root part on any package (#661)
### Changed
— Updated to v4.7.0 of System.IO.Packaging which brings in a number of perf fixes (#660)
— Consolidated data for element children/properties to reduce duplication (#540, #547, #548)
— Replaced opaque binary data for element children constraints with declarative model (#603)
— A number of performance fixes to minimize allocations where possible
— 20% size reduction from 5.5mb to 4.3mb
— The validation subsystem went through a drastic redesign. This may cause changes in what errors are reported.
### Fixed
— Fixed some documentation inconsistencies (#582)
— Fixed `ToFlatOpcDocument`, `ToFlatOpcString`, `FromFlatOpcDocument`, and `FromFlatOpcString` to correctly process Alternative Format Import Parts, or «altChunk parts» (#659)
## [2.9.1] — 2019-03-13
### Changed
— Added a workaround for a .NET Native compiler issue that doesn’t support calling Marshal.SizeOf<T> with a struct that contains auto-implemented properties (#569)
— Fixed a documentation error (#528)
## [2.9.0] — 2018-06-08
### Added
— `ListValue` now implements `IEnumerable<T>` (#385)
— Added a `WebExtension.Frozen` and obsoleted misspelled `Fronzen` property (#460)
— Added an `OpenXmlPackage.CanSave` property that indicates whether a platform supports saving without closing the package (#468)
— Simple types (except `EnumValue` and `ListValue`) now implement `IComparable<T>` and `IEquatable<T>` (#487)
### Changed
— Removed state that was carried in validators that would hold onto packages when not in use (#390)
— `EnumSimpleType` parsing was improved and uses less allocations and caches for future use (#408)
— Fixed a number of spelling mistakes in documentation (#462)
— When calling `OpenXmlPackage.Save` on .NET Framework, the package is now flushed to the stream (#468)
— Fixed race condition while performing strict translation of attributes (#480)
— Schema data for validation uses a more compact format leading to a reduction in dll size and performance improvements for loading (#482, #483)
— A number of APIs are marked as obsolete as they have simple workarounds and will be removed in the next major change
— Fixed some constraint values for validation that contained Office 2007, even when it was only supported in later versions
— Updated `System.IO.Packaging` to 4.5.0 which fixes some issues on Xamarin platforms as well as minimizes dependencies on .NET Framework
## [2.8.1] — 2018-01-03
### Changed
— Corrected package license file reference to show updated MIT License
## [2.8.0] — 2017-12-28
### Added
— Default runtime directive for better .NET Native support.
### Changed
— Fixed part saving to be encoded with UTF8 but no byte order mark. This caused some renderers to not be able to open the generated document.
— Fixed exceptions thrown when errors are encountered while opening packages to be consistent across platforms.
— Fixed issue on Mono platforms using System.IO.Packaging NuGet package (Xamarin, etc) when creating a document.
— Fixed manual saving of a package when autosave is false.
— Fixed schema constraint data and standardized serialization across platforms.
— Upgraded to `System.IO.Packaging` version 4.4.0 which fixes some consistency with .NET Framework in opening packages.
## [2.7.2] — 2017-06-06
### Added
— Package now supports .NET 3.5 and .NET 4.0 in addition to .NET Standard 1.3 and .NET Framework 4.6
### Changed
— Fixed issue where assembly version wasn’t set in assembly.
## [2.7.1] — 2017-01-31
### Changed
— Fixed crash when validation is invoked on .NET Framework with strong-naming enforced.
## [2.7.0] — 2017-01-24
### Added
— SDK now supports .NET Standard 1.3
### Changed
— Moved to using System.IO.Packaging from dotnet/corefx for .NET Standard 1.3 and WindowsBase for .NET 4.5.
— Cleaned up project build system to use .NET CLI.
## [2.6.1] — 2016-01-15
### Added
— Added hundreds of XUnit tests. There are now a total of 1333 tests. They take about 20 minutes to run, so be patient.
## [2.6.0] — 2015-06-29
### Added
— Incorporated a replacement `System.IO.Packaging` that fixes some serious (but exceptional) bugs found in the WindowsBase implementation
Как установить программу (процесс установки наглядно) ↓
OpenOffice на любой компьютер или ноутбук
OpenOffice имеет простой интерфейс с поддержкой русского языка. Программы, входящие в пакет, позволяют работать с данными различных типов, включая форматы MS Office. Требования к аппаратным ресурсам системы минимальные. Разработчики позаботились о совместимости с операционными системами x64 и x32. Запущенные программы не нагружают Windows и быстро обрабатывают даже большие объемы данных. Пакет распространяется бесплатно, опен офис – достойный конкурент Microsoft Office, аналогов которому сложно найти на рынке, тем более в сегменте бесплатного софта.
В OpenOffice входят следующие программы: Writer, Impress, Calc, Base, Draw, Math. Writer заменяет текстовый редактор Word. Impress – программа для создания презентаций. Calc является аналогом Excel. Программа Base – альтернатива MS Access. Для редактирования векторной графики можно воспользоваться Draw. Возможно, вам приходится работать со сложными математическими формулами? Тогда оцените преимущества редактора Math! В программах OpenOffice предусмотрен справочный раздел, в котором описан функционал и опубликованы инструкции по выполнению различных операций, которые пригодятся новичкам.
Как записывать игры в OpenOffice
Абсолютно бесплатно
Низкие требования к ПК
Нет фатальных багов
Простой интерфейс
Как установить Опен Офис на пк:
Запуск программы происходит с помощью распаковщика OpenBox
Запустите файл.
Ознакомьтесь с информацией и нажмите «Далее».
Нажмите «Далее», или снимите галочки с рекомендуемого ПО и нажмите «Далее». Если снять все галочки, рекомендуемое ПО не установится!
После всех шагов нажмите «Установить».
OpenOffice для версий windows:
|
|
При установке пользователям предоставляется возможность указать набор программ (в процессе выборочной инсталляции). Ярлык OpenOffice размещается на рабочем столе и в меню Пуск. Для запуска одной из программ войдите в Open Office и выберите подходящую задачу – запустить необходимый компонент пакета очень просто. Интерфейс приложений напоминает тот, который используется в MS Office – освоение опен офис не представляет собой ничего сложного. На нашем сайте вы можете скачать последнюю версию пакета для различных операционных систем Windows, в том числе для сборок x32. Установите альтернативу известному продукту компании Microsoft и пользуйтесь офисными приложениями бесплатно!
Время на прочтение
4 мин
Количество просмотров 72K
Часто надо бывает из приложения на ASP.NET сгенерировать отчёт на сервере в OpenXML-формате.
Есть несколько привычных способов сделать это:
- «Нашёл, слинковал, заюзал» – идём в Гугл, ищем библиотеку для генерации docx или xlsx, подключаем, разбираемся, генерируем. Это привычно, но долго.
- «Фу» – использовать COM. Это не рекомендуется, требует установленного Microsoft Office на сервере, не очень thread-safe, с x64 не дружит и вообще старомодно.
- «Ъ» – разобраться с форматом, собрать из XML и зазипать. Брутально.
- «Microsoft way» – об этом способе рассказывается под катом.
Небольшое введение
OfficeOpenXML – это то, в чём вы по умолчанию сохраняете документы, работая в Word и Excel: docx и xlsx. Файл представляет собой zip-архив. Его можно переименовать в zip, открыть архиватором и рассмотреть, что внутри:
Отчёты в OOXML хорошо воспринимаются и редактируются привычными средствами. Я бы не рекомендовал в серьёзных приложениях ограничиваться именно этим форматом, но советую поддерживать его.
Подготовка
Нам понадобятся:
- Microsoft OpenXML SDK: www.microsoft.com/downloads/en/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en (качать то, что больше)
- Microsoft Word
- Простейшее C#-приложение в Visual Studio
Качаем OpenXMLSDKTool с сайта Microsoft и устанавливаем его:
Поехали
Запускаем Open XML SDK 2.0 Productivity Tool:
Эта тулза очень простая и умеет делать две маленькие, но важные операции:
- Сгенерировать код по документу
- Сравнивать документы на уровне XML
Но обо всём по порядку.
Генерация кода
Загружаем в программулину наш документ и кликаем «Reflect Code»:
Слева мы видим структуру документа – те же файлы, что присутствуют в архиве, и представление их содержимого.
Ноды в дереве можно выделять: справа видно содержимое ноды в виде XML и код, который может сгенерировать именно этот кусочек. На моём примере виден один абзац из тела документа. Оно как раз живёт в word/document.xml.
Если выделить корень дерева (сам документ) – получим код для всего документа.
Теперь давайте поиспользуем этот код
- Делаем проект в Visual Studio. Пусть это будет простое консольное C#-приложение
- Добавляем референс на сборку DocumentFormat.OpenXml:
У меня она в GAC. Если вы не хотите её туда класть, можно добавить ссылку на сам файл. Отдельно скачать его можно там же, где был OpenXMLSDKTool, но по ссылке OpenXMLSDKv2.msi - Добавляем референс на WindowsBase
- Добавляем файл «GeneratedClass.cs»
- Копируем туда код из тулзы, из окошка ReflectedCode
- Закрываем файл, сохранив его, переходим в Program.cs
- Пишем метод Main:
new GeneratedCode.GeneratedClass().CreatePackage(@"D:TempOutput.docx");
- Запускаем
Всё. Код для генерации документа готов. Документ будет выглядеть точно так же, как он выглядел перед тем, как вы сохранили его в Word. Быстро, не правда ли?
Что внутри?
Что же внутри сгенерированного класса?
Во-первых, там один единственный открытый метод:
public void CreatePackage(string filePath) {
using (WordprocessingDocument package = WordprocessingDocument.Create(filePath, WordprocessingDocumentType.Document)) {
CreateParts(package);
}
}
Вот тут вставляется текст, который будет в документе:
private void GenerateMainDocumentPart1Content(MainDocumentPart mainDocumentPart1) {
Run run2 = new Run() { RsidRunProperties = "00184031" };
Text text2 = new Text();
text2.Text = "Исчисление предикатов, по определению, философски выводит структурализм, изменяя привычную реальность."; // о.О какую траву курил Яндекс?
}
Как видно из названий private-методов в коде, OpenXml-документ состоит из частей (part). Для генерации каждой части сделан отдельный метод.
Наиболее любознательные, конечно же, ехидно улыбнувшись, вставили в документ картинку.
Картинки хранятся прямо в этом файле, в виде base64, вот тут:
#region Binary Data
//...
#endregion
Завязываем бантики
Рефакторинг картинок и замена статического контента на динамический оставим читателю в качестве упражнения.
А вот метод, который генерирует не файл, а массив байтов – для отдачи клиенту из asp.net без временных файлов:
public byte[] CreatePackageAsBytes() {
using (var mstm = new MemoryStream()) {
using (WordprocessingDocument package = WordprocessingDocument.Create(mstm, WordprocessingDocumentType.Document)) {
CreateParts(package);
}
mstm.Flush();
mstm.Close();
return mstm.ToArray();
}
}
Всё, код для генерации отчёта в формате docx готов.
Осталось заменить контент на динамический. Мы же не делали всё это ради того, чтобы всё время отдавать одно и то же, ведь правда? И добавить на страничку ссылку «Скачать в формате Word».
Сравнение документов
Итак, мы сгенерировали код по документу. Добавили туда много данных, зарефакторили его, внедрили в production. И вот нам надо поменять шрифт и текст в отчёте. Как же это сделать? Кода много, искать в нём долго.
Оказывается, всё очень просто, нам поможет фича сравнения документов:
- Положим рядом старый и новый документы
- Открываем Open XML Productivity Tool, выбираем «Compare files…»:
- Открываем файлы и жмём OK. Перед нами результат сравнения:
На строчки с именами файлов можно тыкнуть и увидеть, в чём именно отличия:
В MoreOprions выбирается, что игнорировать при сравнении.
View Part Code показывает код той части, XML которой вы видите.
Уж сопоставить XML и код труда не составит.
Кстати, эту фичу ещё очень удобно использовать, если вы только знакомитесь с форматом OpenXML: добавляете что-то в документ и смотрите, что изменилось. Поможет тем, кто выбрал способ «Ъ», о котором говорилось в начале статьи.
Факты
- С Xlsx катит. Точно так же, как с docx
- Если внутри Docx график или диаграмма – всё будет хорошо
- Это всего лишь strongly-typed обёртка над библиотекой System.IO.Packaging
- На сервере не нужно ничего, кроме этой библиотеки
- Никаких проблем с x64
- Производительность на высоте
Выводы
Я считаю, что использование DocumentFormat.OpenXml для генерации отчётов в web-приложениях – правильный выбор. Полезная тулза из SDK позволит вам не тратить время зря.
Что почитать
Про OpenXML SDK: msdn.microsoft.com/en-us/library/bb448854(office.14).aspx
Про OpenXML (если кто с ним не знаком): en.wikipedia.org/wiki/Office_Open_XML
Удачи! Спасибо за внимание.
1. Назначение библиотеки:
Библиотека необходима для создания файлов с помощью формата Office Open XML, ничего лишнего, только программное формирование документов .docx, без участия COM-объекта.
Модули реализованы на основании Библиотеки стандартных подсистем 3.1.2:
- Официальная страница https://its.1c.ru/db/bsp312doc
- Страница репозиторий https://github.com/1c-syntax/ssl_3_1
Поддерживает создание сложных документов(таблицы, верхние и нижние колонитулы и др.), а так же пакетное формирование с архивированием в zip архив.
2. Системные требования:
Платформа 1С Предприятие не ниже 8.3.6
3. Основные процедуры и функции:
Клиентские
// Процедура - Новый документ в формате OOXML // // Параметры: // ИмяМакета - Строка - Наименования в общем макете // ДанныеПечати - Структура - Структура заполняемых парамертов в макете // ИмяПолучаемогоФайла - Строка - Наименование получаемого файла // Процедура НовыйДокументВФорматеOOXML(ИмяМакета, ДанныеПечати, ИмяПолучаемогоФайла = "") Экспорт
// Процедура - Новые документы в формате OOXML // // Параметры: // Документы - Массив - набор структур данных для печати, с ключами: // * ИмяМакета - Строка - Наименования в общем макете // * ДанныеПечати - Структура - Структура заполняемых парамертов в макете // * ИмяПолучаемогоФайла - Строка - Наименование получаемого файла // АрхивироватьВZip - Булево - Архивировать в архив zip или нет, // если нет тогда документы откроются из временного хранилища на клиенте // Процедура НовыеДокументыВФорматеOOXML(Документы, АрхивироватьВZip = Истина) Экспорт
Серверные
// Функция - Новый документ OOXML // // Параметры: // ИмяМакета - Строка - Наименование общего макета // ДанныеПечати - Структура - Строковые представления данных для печати // // Возвращаемое значение: // - Структура // * АдресВоВременномХранилище - Строка - // Функция НовыйДокументOOXML(ИмяМакета, ДанныеПечати) Экспорт
Не удается открыть файл Office Open XML? На самом деле, это редкая проблема, которая случается не так часто.
Office Open XML представляет собой не единый формат документов, а целую серию известных форматов от компании Майкрософт. Туда входят:
«.docx»;
«.xlsx»;
«.pptx».
Подробнее, что такое Office Open XML
Сокращенно формат Office Open XML обозначается как «.ooxml». Он был внедрен в «офисный пакет» компании Майкрософт начиная с Microsoft Office 2007. Этот формат несет в себе несколько классных особенностей, например:
Улучшенное сжатие файлов. Office Open XML использует zip-сжатие для сохранения документов, что улучшает процент сжатия в несколько раз. На деле это существенно экономит место на диске, когда приходится хранить большой объем документов или отправлять документы по электронной почте.
Файлы легко восстанавливаются при повреждениях. Из-за особенной структуры хранения информации в этом формате такие документы открываются даже в тех случаях, когда какой-либо элемент документа поврежден. Например, если таблица в документе повреждена, вы все равно сможете его открыть и восстановить таблицу.
Дополнительные расширения. Часть расширений для работы с документами в Microsoft Office доступна только для формата Office Open XML.
Улучшенная совместимость. Формат Office Open XML подразумевает, что документ такого формата может быть легко открыт в любом продукте «офиса». И самое важное, что такой формат совместим между разными версиями «офисных продуктов».
И др.
Но даже у такого, казалось бы, качественного продукта знаменитой компании случаются сбои. Во время таких сбоев пользователи получают сообщение: «Не удается открыть файл Office Open XML».
Почему появляется ошибка «не удается открыть файл Office Open XML» в продуктах Office
Чаще всего такая ошибка связана с внутренним содержимым. Но самое интересное, что она возникает совершенно внезапно в тот момент, когда ее меньше всего ждешь. В любом случае такая ошибка возникает при ошибке в последнем редактировании документа в формате Office Open XML.
На самом деле, заострять свое внимание и просто гадать, почему возникли проблемы, не стоит. Лучше приступать к поиску проблем и решать их, тем более что у всех вероятных причин возникновения этой ошибки алгоритм исправления один.
Ошибка «не удается открыть файл Office Open XML»: как исправить
Чтобы исправить эту ошибку, для начала нужно провести анализ проблемного документа. Найдя проблемный фрагмент, его можно попытаться восстановить. Документ в формате «.ooxml» может содержать следующие виды информации:
обычный текст;
графическое изображение;
ссылки на веб-сайты;
таблицы с информацией;
различные диаграммы;
и многое другое.
В общем, документ в формате «.ooxml» может содержать любой компонент какого-либо продукта MS Office.
Методы исправления ошибки:
Программа «Notepad++». Отлично сработает в тех случаях, если документ в формате Office Open XML является текстовым. Notepad++ в этом случае легко откроет его и поможет восстановить текстовые данные, даже если Word не смог этого сделать. Но у такого способа есть один минус — Notepad++ не поддерживает «текстовое форматирование». Простым языком: у вас перед глазами будет только текст без заголовков и абзацев — все это нужно будет восстановить «вручную», зато сам текст сохранится полностью.
Программа «WordPad». Это малоизвестный встроенный в операционную систему Windows текстовый редактор. Он не функциональный и не имеет таких возможностей, как Notepad++ или Word, поэтому им мало кто пользуется. Но он всегда рядом и может открыть документ, когда другие «офисные программы» пишут: «не удается открыть файл Office Open XML». Наведите на проблемный файл курсор и откройте меню «Открыть с помощью…». Там найдите WordPad и откройте свой документ. Кстати, он работает с текстом, изображениями и ссылками, поэтому поможет восстановить данные этих видов.
Программа «XMLPad». Это сторонняя программа, которую нужно скачать из интернета. Она простая и бесплатная, но в вашем проблемном случае должна помочь. Она способна открыть файлы разных форматов, в том числе и формата «Office Open XML». Обычно она открывает этот формат даже в тех случаях, когда «родные» программы выдают ошибку. Но вся ее прелесть в том, что она не просто открывает проблемный документ, а еще и показывает, в какой строке и каком месте возникла ошибка, мешающая «родным» программам.
Другие «офисы». Иногда ошибка «не удается открыть файл Office Open XML» решается очень просто. Нужно поменять «офисный пакет». Чаще всего такая ошибка появляется именно у MS Office, поэтому попробуйте открыть проблемный документ в Libre Office или Open Office. Кстати, оба «офисных пакета» бесплатны и некоторым пользователям помогли решить проблему с этой ошибкой.
Заключение
Практика показала, что чаще всего ошибка «не удается открыть файл формата Office Open XML» появляется в Microsoft Office, когда в документе преобладают технические формулы, а сам документ разрастается до больших размеров. Это указывает на то, что с большими размерами и формулами у «офисного пакета» есть некоторые проблемы.
Понятно, что от формул в документе никуда не денешься, если они там должны быть. Но вот с «большими размерами» документа можно бороться. Все, что нужно делать, — это заранее сохранять небольшие резервные части своей работы. Например, вы работаете над курсовой или дипломной работой, а может, пишете книгу. В этом случае написали 50-100 страниц работы, тогда сохраните ее отдельным файлом и дальше продолжайте работу. Потом еще 50-100 страниц — опять сохраните отдельным файлом. В этом случае, если в конце с документом возникнет какая-то проблема, тогда у вас всегда будут работающие копии на руках.
- Главная
- Загрузка файлов
- Офисные программы
+87
электронная таблицатекстпрезентацияконвертер
23-02-2013
Название программы | OpenXML/ODF Translator Add-in for Office |
Версия программы | 4.0 |
Описание программы | Плагин для обеспечения взаимодействия между приложениями на основе ODF (OpenDocument) стандарт 1.1 и MS Office — документы Office OpenXML. |
Лицензия | BSD License (бесплатно) |
Ссылка на сайт изготовителя | http://sourceforge.net/projects/odf-converter/ |
Скачать |
Если вы не нашли ответ или нужную информацию,
задайте вопрос через форму обратной связи.
Это может быть интересно:
– OpenOffice — пакет офисных программ
– Sun ODF Plugin for MS Office
– UbitMenu — меню для MS Office 2007, 2010, 2013
– LibreOffice — пакет офисных программ
– Файл с расширением .ods Чем открыть?
Комментарии (2)
-
Василий:
Sep 10, 2014 at 10:21 AMСпасибо
Ответить
-
Елена:
Nov 30, 2014 at 11:51 PMОгромное вам спасибо! На работе оупен офис, мучилась дома работая с рабочими документами, теперь все открывается нормально!!
Ответить
Ник:
Электронная почта:
Вебсайт:
Уведомлять о новых ответах:
Разрешённые теги: Добавить новый комментарий:
Docx – формат текстовых файлов MS Office, который вряд ли нуждается в презентации. Дело в том, что документы указанного расширения сегодня применяются повсеместно, и относятся к числу самых популярных как среди рядовых пользователей, так и учителей, педагогов, писателей и т.д. Формат файла docx появился в 2007 году, после чего регулярно подвергался модернизации, собственно, тенденция продолжается. В настоящее время документы MS Office можно открыть не только с помощью указанного пакета программ, но и за счет других бесплатных редакторов, «просмотрщиков». Чаще всего, программы для открытия docx предусматривают чтение и редактирование электронных таблиц, презентаций, текста и прочего. Рассмотрим самые популярные бесплатные варианты, и сделаем вывод относительно наиболее удобного из них для работы с описанным стандартом документов.
- Небольшой вес офисного пакета с быстрой установкой
- Загрузка и редактирование документов без зависаний
- Работа со всеми известными форматами документов
Скачать
Бесплатно Windows Office
Windows XP / Vista / 7 / 8 / 10 Версия: 1.4 29.10.2019
Размер файла: 43 МБ.
Как открыть файл в формате .docx?
Вначале разберемся с содержимым данного стандарта. Как известно, файлы с расширением .docx включают текст, картинки, стили форматирования, рисованные элементы. Такие документы создают в программе Microsoft Word, но их можно открывать и редактировать при помощи другого софта. Стоит добавить, что в отличие от расширения .DOC, включающего информацию в одном бинарном файле, данные типы документов основаны на открытом формате XML. Их основная суть в том, чтобы сделать содержание документов более доступным. Говоря о том, чем открыть файл DOCX, здесь ассортимент велик: от ранних версий Word 2007 до более удобных и универсальных бесплатных редакторов, включая Windows Office. В последнем случае не придется дополнительно загружать расширения для работы с другими стандартами офисных программ.
Программа Windows Office для открытия DOCX файлов
Если ассоциации на вашем ПК настроены правильно, вам не придется разбираться с тем, как открыть docx — будет достаточно дважды кликнуть мышкой по документу при помощи приложения Windows Office. В свойствах документа можно настроить открытие данного разрешения указанной программой по умолчанию. Если правильное применение разрешения не настроено, то при нажатии по файлу откроется окно, в котором Вы сможете указать путь к программе для работы с файлами docx. В нашем случае это Windows Office. Собственно, на этом всё. В дальнейшем, чтобы просмотреть или отредактировать документ никаких дополнительных действий помимо двойного клика мышкой по файлу не потребуется. Стоит добавить, что предложенная утилита отличается небольшим весом, быстро устанавливается и регулярно в автономном режиме.
Бесплатно Windows Office
Windows XP / Vista / 7 / 8 / 10 Версия: 1.0 04.12.2015
Размер файла: 45,2 МБ.
Начиная с Microsoft Office 2007, в Microsoft Office используются форматы файлов на основе XML, например DOCX, XLSX и PPTX. Эти форматы и расширения имен файлов применяются к Microsoft Word, Microsoft Excel и Microsoft PowerPoint. В этой статье приводятся основные преимущества формата, описаны расширения имен файлов и описаны способы предоставления общего доступа к файлам Office пользователям, использующим более ранние версии Office.
Каковы преимущества форматов Open XML?
Форматы Open XML включают большое количество преимуществ — не только для разработчиков и тех решений, которые они создают, но и для отдельных пользователей и организаций любого размера:
Компактные файлы Файлы автоматически сжимаются, а в некоторых случаях они могут быть не менее 75%. В формате Open XML для хранения документов используется технология сжатия ZIP, что позволяет экономить деньги, так как уменьшает объем дискового пространства, необходимого для хранения файлов, и снижает пропускную способность, необходимую для отправки файлов по электронной почте, через сети и через Интернет. При открытии файла он автоматически размещается в архиве. При сохранении файла он автоматически заархивирован. Для открытия и закрытия файлов в Office не нужно устанавливать специальные служебные программы для работы с ZIP.
Улучшенные возможности восстановления поврежденных файлов. Файлы имеют модульную структуру, поэтому различные компоненты данных файла хранятся отдельно друг от друга. Это позволяет открывать файлы даже в том случае, если компонент в файле (например, диаграмма или таблица) поврежден или поврежден.
Поддержка дополнительных функций Многие дополнительные возможности Office 365 требуют, чтобы документ хранился в формате Open XML. Такие вещи , как автосохранение и Проверка читаемости: в двух примерах можно работать только с файлами, которые ХРАНЯТСЯ в формате Open XML.
Улучшенная конфиденциальность и дополнительный контроль над персональными данными. Доступ к документам может быть конфиденциальным, так как личные данные и конфиденциальные сведения, такие как имена авторов, примечания, исправления и пути к файлам, можно легко идентифицировать и удалить с помощью инспектора документов.
Улучшенная интеграция и совместимость бизнес-данных. Использование форматов Open XML в качестве платформы взаимодействия с данными для набора Office позволяет сохранять документы, листы, презентации и формы в формате XML-файлов, которые можно бесплатно использовать для пользователей и лицензий. Кроме того, Office поддерживает пользовательские XML-схемы, которые улучшают существующие типы документов Office. Это означает, что пользователи могут легко разблокировки информации в существующих системах и работать с ними в знакомых программах Office. Информация, созданная в Office, может быть легко использована другими бизнес-приложениями. Все, что нужно для открытия и редактирования файла Office — это служебная программа ZIP и редактор XML.
Упрощенное обнаружение документов, содержащих макросы. Файлы, сохраненные с использованием суффикса x, используемого по умолчанию (например, DOCX, XLSX и PPTX), не могут содержать макросы Visual Basic для приложений (VBA) и макросы XLM. Макросы могут содержать только те файлы, расширения имен которых заканчиваются на «м» (например, DOCM, xlsm и PPTM).
Если вы хотите сохранить файл в двоичном формате, чтение может иметь разные версии Office.
Как преобразовать файл из старого двоичного формата в современный формат Open XML?
Открыв файл в приложении Office, щелкните файл> Сохранить как (или сохранить копию, если файл хранится в OneDrive или SharePoint) и убедитесь, что для типа сохранить как задан современный формат.
Это приведет к созданию новой копии файла в формате Open XML.
Что такое расширения имени XML-файла?
По умолчанию документы, листы и презентации, созданные в Office, сохраняются в формате XML с расширениями имен файлов, которые добавляют «x» или «m» к расширениям имен файлов, с которыми вы уже знакомы. «X» обозначает XML-файл без макросов, а «m» обозначает XML-файл, который содержит макросы. Например, при сохранении документа в Word файл теперь использует расширение имени DOCX-файла по умолчанию вместо расширения DOC-файла.
При сохранении файла в качестве шаблона отображаются изменения такого же вида. Расширение шаблона, используемое в более ранних версиях, теперь содержит «x» или «m» в конце. Если файл состоит из кода или макросов, необходимо сохранить его с помощью нового формата XML-файлов с поддержкой макросов, который добавляет «m» для макроса к расширению файла.
В приведенных ниже таблицах перечислены все расширения имен файлов по умолчанию в Word, Excel и PowerPoint.
Office Open XML – это целая серия форматов документов, создаваемых и используемых в MSOffice. К ним относятся:
Известны случаи, когда возникают неполадки при открытии и редактировании файла. В этой статье будут рассмотрены основные причины возникновения ошибки «Не удается открыть файл OFFICE Open XML из-за ошибок его содержимого» при открытии, а также способы решения данной проблемы.
Скриншот ошибки «Не удается открыть файл OFFICE Open XML из-за ошибок его содержимого»
Причины возникновения ошибки в Ворд
Самая распространенная ошибка открытия файла с расширением .docx имеет следующую формулировку: «Не удается открыть файл OfficeOpen XML.docx из-за ошибок его содержимого». На месте «Office Open XML», соответственно, должно быть название текущего документа, в работе с которым возникли неполадки.
Проблема может возникнуть внезапно или иметь какие-то предшествующие причины, например, сложности с последним сохранением файла или неполадки, возникшие при последнем редактировании файла. Вне зависимости от специфики возникновения неполадок, данная проблема решается общими методами.
Как исправить «Не удается открыть файл OFFICE Open XML из-за ошибок его содержимого»
Для начала, необходимо проанализировать, какие типы файлов находятся в документе и которые из них необходимо восстановить. Документ Office Open XML может содержать следующие типы информации:
- текстовые данные;
- изображения;
- гиперссылки;
- таблицы;
- диаграммы;
- различные формы;
- закладки и многое другое.
Проще всего восстановлению поддаются текстовые данные. Для открытия следующего типа данных можно использовать текстовый редактор Notepad++, который имеет нумерацию строк и подсветку синтаксиса. При использовании данной программы будет утеряно все форматирование файла .docx, однако, удастся сохранить данные и восстановить их.
Еще один способ восстановления документа Office Open XML посредством программы Adobe In Design:
- поменять расширение файла (.docx или .xml на .txt);
- открыть программу InDesign и создать в ней новый текстовый фрейм, куда перетащить курсором файл с новым расширением .txt;
- использовать открывшиеся данные или воспользоваться поиском конкретного текста посредством функции «найти и заменить».
Восстановление файла встроенными функциями Windows
Вне зависимости от установленной версии Windows, каждая сборка предполагает наличие такого простого редактора, как Word Pad. Он не имеет широких возможностей форматирования текста, зато может быть полезен в подобных ситуациях. Для того, чтобы использовать эту программу, необходимо кликнуть на документе правой кнопкой мыши и в открывшемся списке нажать на «Открыть с помощью…». В появившемся окне появится иконка программы WordPad, которая поможет открыть не только текстовую информацию, но и изображения с гиперссылками.
Использование программы Xml Pad
Бесплатная утилита, которую можно свободно скачать в сети. Эта программа проста в установке, она позволяет просматривать и редактировать несколько типов файлов, но нас интересует только .xml, поэтому необходимо кликнуть на него. Затем необходимо открыть «битый» файл посредством этой программы и приступить к редактированию. Основное преимущество данной программы заключается в том, что она показывает строку, которая вызывает ошибку при открытии файла. В некоторых случаях достаточно удалить или редактировать данную строку, чтобы вернуть файл в рабочее состояние. Если же данный метод не сработает, то придется извлечь все текстовые данные, перенести их в новый файл и сохранить, создав новое форматирование вручную.
Совет: Следует всегда сохранять резервную копию файла и хранить ее либо на внешнем диске, либо в другой директории. Это поможет исключить возникновение подобных «Не удается открыть файл OFFICE Open XML из-за ошибок его содержимого» проблем.
Видео в котором используется метод открытия файла посредством программы Notepad ++: