Формат XML предназначен для хранения данных, которые могут быть полезны в работе некоторых программ, сайтов и поддержке определенных языков разметки. Создать и открыть файл в этом формате несложно. Это можно сделать, даже если на вашем компьютере не установлено специализированное программное обеспечение.
XML сам по себе является языком разметки, чем-то похожим на HTML, который используется на веб-страницах. Но если последний используется только для отображения информации и ее правильной разметки, XML позволяет структурировать ее определенным образом, что делает этот язык похожим на аналог базы данных, не требующий СУБД.
Вы можете создавать файлы XML, используя как специализированные программы, так и встроенный текстовый редактор Windows. Удобство написания кода и уровень его функциональности зависят от типа используемого программного обеспечения.
Способ 1: Visual Studio
Вместо этого редактора кода Microsoft вы можете использовать любые его аналоги от других разработчиков. Фактически, Visual Studio — это более продвинутая версия обычного Блокнота. Код теперь имеет специальную подсветку, ошибки автоматически выделяются или исправляются, а специальные шаблоны уже загружены в программу, что упрощает создание больших файлов XML.
Для начала вам необходимо создать файл. Щелкните элемент «Файл» на верхней панели и выберите «Создать…» в раскрывающемся меню. Откроется список, в котором указана запись «Файл».
Вам будет перенесено окно с выбором расширения файла, соответственно выберите пункт «XML файл».
Во вновь созданном файле уже будет первая строка с кодировкой и версией. По умолчанию записывается первая версия и кодировка UTF-8, которую вы можете изменить в любой момент. Затем, чтобы создать полный XML-файл, вам нужно записать все, что было в предыдущем операторе.
По окончании работы снова выберите в верхней панели «Файл», затем из выпадающего меню пункт «Сохранить все».
Способ 2: Microsoft Excel
Вы можете создать XML-файл без написания кода, например, используя современные версии Microsoft Excel, что позволяет сохранять таблицы с этим расширением. Однако нужно понимать, что в этом случае у вас не получится создать что-то более функциональное, чем обычный стол.
Этот метод лучше всего подходит для тех, кто не хочет или не умеет работать с кодом. Однако в этом случае пользователь может столкнуться с некоторыми проблемами при перезаписи файла в формате XML. К сожалению, преобразование обычной таблицы в XML возможно только в более новых версиях MS Excel. Для этого воспользуйтесь следующими пошаговыми инструкциями:
- Дополните таблицу некоторым содержанием.
- Нажмите кнопку «Файл» в верхнем меню.
- Откроется специальное окно, в котором нужно нажать «Сохранить как…». Этот пункт находится в левом меню.
- Укажите папку, в которой вы хотите сохранить файл. Папка указана в центре экрана.
- Теперь вам нужно указать имя файла и в разделе «Тип файла» из выпадающего меню выбрать
Данные XML». - Нажмите кнопку «Сохранить».
Способ 3: Блокнот
Даже обычный Блокнот вполне подходит для работы с XML, но у пользователя, незнакомого с синтаксисом языка, возникнут трудности, так как в нем придется писать различные команды и теги. Несколько проще и продуктивнее процесс будет в специализированных программах для редактирования кода, например, в Microsoft Visual Studio. В них есть специальные метки и подсказки, которые значительно упрощают работу человеку, не знающему синтаксиса этого языка.
Для этого метода ничего скачивать не нужно, так как в операционной системе уже есть встроенный «Блокнот». Попробуем создать простую XML-таблицу по приведенным инструкциям:
- Создайте простой текстовый документ с расширением TXT. Вы можете разместить его где угодно. Открой это.
- Начните набирать в нем первые команды. Во-первых, вам нужно установить кодировку для всего файла и указать версию XML, это делается с помощью следующей команды:
Первое значение — это версия, менять ее не нужно, а второе значение — это кодировка. Рекомендуется использовать кодировку UTF-8, так как с ней прекрасно работает большинство программ и обработчиков. Однако его можно изменить на любое другое, просто набрав желаемое имя.
- Создайте первый каталог в вашем файле, написав тег и закрыв его вот так .
- Теперь вы можете написать какой-то контент внутри этого тега. Создаем тег и даем ему любое имя, например «Иван Иванов». Готовая конструкция должна выглядеть так:
- Внутри тега теперь можно писать более подробные параметры, в данном случае это информация об определенном Иване Иванове. Мы пропишем ваш возраст и местонахождение.
- Если вы следовали инструкциям, вы должны получить тот же код, что и ниже. Когда закончите, найдите «Файл» в верхнем меню и выберите «Сохранить как…» в раскрывающемся меню. При сохранении в поле «Имя файла» после точки должно стоять расширение не TXT, а XML.
Компиляторам XML необходимо обработать этот код в виде таблицы с одним столбцом, содержащей данные о некоем Иване Иванове.
В «Блокноте» вполне можно создавать такие простые таблицы, но при создании массивов более объемных данных могут возникнуть трудности, так как в обычном «Блокноте» нет функций для исправления ошибок в коде или их выделения.
Как видите, в создании XML-файла нет ничего сложного. При желании его может создать любой пользователь, более-менее умеющий работать на компьютере. Однако для создания полного XML-файла рекомендуется изучить этот язык разметки, по крайней мере, на примитивном уровне.
- Download source code — 12.8 KB
Introduction
On April 2009, Microsoft published the Open XML Format SDK 2.0 CTP. Open XML is an open ECMA 376 standard, and is also approved as the ISO/IEC 29500 standard that defines a set of XML schemas for representing spreadsheets, charts, presentations, and word processing documents. Microsoft Office Word 2007, Excel 2007, and PowerPoint 2007 all use Open XML as the default file format. This SDK provides the functionality for easy creation, modification, and verification of Open XML files. In this article, I want to focus on the creation of Word 2007 (docx) documents using the Open XML Format SDK 2.0 CTP.
The Open XML Format SDK provides a simple API that allows to create and manipulate Open XML documents using one of the available languages from the .NET platform. Thanks to this SDK, a knowledge about XML and WordprocessingML is not required to work on Open XML documents (however, sometimes it is very useful). The SDK makes it easier for you to build solutions using the Open XML Format by allowing you to perform complex operations, such as creating Open XML Format packages (including easy support for internal documents, styles, themes, etc …), or working with text and formatting like adding and deleting headers, paragraphs, tables, comments, etc…, with just a few lines of code.
First Application («Hello World!» in Open XML)
Let’s start from an easy task: creation of a Word document that contains a sample and well known text: «Hello World!». For those who are familiar with WordprocessingML, we are going to crate a document with the following content:
="1.0"="utf-8" <w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> <w:body> <w:p> <w:r> <w:t>Hello World!</w:t> </w:r> </w:p> </w:body> </w:document>
But the question is: how to do it in the Open XML Format SDK?
It is quite easy. At the beginning, it is required to add the following references to the project:
DocumentFormat.OpenXml
WindowsBase
The next step is adding the following namespaces (as using) to the code file:
DocumentFormat.OpenXml
DocumentFormat.OpenXml.Packaging
DocumentFormat.OpenXml.Wordprocessing
Now focus on the function that prepares the Word document containing «Hello World»:
private void HelloWorld(string documentFileName) { using (WordprocessingDocument myDoc = WordprocessingDocument.Create(documentFileName, WordprocessingDocumentType.Document)) { MainDocumentPart mainPart = myDoc.AddMainDocumentPart(); mainPart.Document = new Document(); Body body = new Body(); Paragraph paragraph = new Paragraph(); Run run_paragraph = new Run(); Text text_paragraph = new Text("Hello World!"); run_paragraph.Append(text_paragraph); paragraph.Append(run_paragraph); body.Append(paragraph); mainPart.Document.Append(body); mainPart.Document.Save(); } }
The code above creates a Word Document file (according to the caller arguments), which contains a paragraph with the text: Hello World!”. Just like in the previously shown XML, the text is embedded inside the Run
element, that is embedded in Paragraph
, that is added to the body
and to the document
.
SaveFileDialog mySaveFileDialog=new SaveFileDialog(); mySaveFileDialog.Filter = "Word 2007 file (DOCX)|*.docx"; if (mySaveFileDialog.ShowDialog() == DialogResult.OK) { HelloWorld(mySaveFileDialog.FileName); Process.Start(mySaveFileDialog.FileName); }
Styles in Open XML SDK
In the previous section, we created a simple document. The font and style were default, but here comes the questions: How to change the font? How to change the size of the font? How to create a heading? The answer (for all of those questions) is styles (just like in Word), but how to do it in the SDK?
Let’s take a look at the example of creation of a document that will consist of two lines. The first line will be the heading of the paragraph (in this example, the font is red, bold, and the height is 28). The second one will be a standard paragraph. I have already described how to prepare an ordinary paragraph, so let’s focus on the first line (formatted according to our requirements).
The first task is the addition of the style definition part (StyleDefinitionsPart
) to the document. It should be added to the main document part:
WordprocessingDocument myDoc = WordprocessingDocument.Create(documentFileName, WordprocessingDocumentType.Document) MainDocumentPart mainPart = myDoc.AddMainDocumentPart(); StyleDefinitionsPart stylePart = mainPart.AddNewPart<StyleDefinitionsPart>();
Now, we have to define the font that we want to use (red, bold, and the height is 28):
RunProperties rPr = new RunProperties(); Color color = new Color() { Val = "FF0000" }; RunFonts rFont = new RunFonts(); rFont.Ascii = "Arial"; rPr.Append(color); rPr.Append(rFont); rPr.Append(new Bold()); rPr.Append(new FontSize() { Val = 28 });
Now, it is time for the style definition. Let’s call it «My Heading 1», the identifier is «MyHeading1
» (this identifier will be used directly in the Word document). The sample code below illustrates how to do it:
Style style = new Style(); style.StyleId = "MyHeading1"; style.Append(new Name() { Val = "My Heading 1" }); style.Append(new BasedOn() { Val = "Heading1" }); style.Append(new NextParagraphStyle() { Val = "Normal" }); style.Append(rPr);
After the creation of the style, we have to add this to the style document:
stylePart.Styles = new Styles();
stylePart.Styles.Append(style);
stylePart.Styles.Save();
The code above prepares the following style definition file in WordprocessingML:
="1.0"="utf-8" <w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> <w:style w:styleId="MyHeading1"> <w:name w:val="My Heading 1" /> <w:basedOn w:val="Heading1" /> <w:next w:val="Normal" /> <w:rPr> <w:color w:val="FF0000" /> <w:rFonts w:ascii="Arial" /> <w:b /> <w:sz w:val="28" /> </w:rPr> </w:style> </w:styles>
We have finished the work that refers to the style creation; now, we have to assign the style to the selected paragraph. To do it, we will use the ParagraphProperties
class and its ParagraphStyleId
property:
Paragraph heading = new Paragraph(); Run heading_run = new Run(); Text heading_text = new Text("This is Heading"); ParagraphProperties heading_pPr = new ParagraphProperties(); heading_pPr.ParagraphStyleId = new ParagraphStyleId() { Val = "MyHeading1" }; heading.Append(heading_pPr); heading_run.Append(heading_text); heading.Append(heading_run);
The code above prepares the following document file in WordprocessingML:
="1.0"="utf-8" <w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> <w:body> <w:p> <w:pPr> <w:pStyle w:val="MyHeading1" /> </w:pPr> <w:r> <w:t>This is Heading</w:t> </w:r> </w:p> </w:body> </w:document>
Tables in Open XML SDK
In this section, I want to focus on the creation of tables using the Open XML Format SDK. Thanks to the simple API, it is easy as the examples shown before. To create a table, we have to use the Table
class in which we embed the TableRow
and TableCell
elements. The simple example presents the code below:
Body body = new Body(); Table table = new Table(new TableRow(new TableCell( new Paragraph(new Run(new Text("Hello World!")))))); body.Append(table);
In the following example, I will show how to create a simple document that contains the «Multiplication table» (just like in school ):
Multiplication table |
||||||||||
* |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
2 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
18 |
20 |
3 |
3 |
6 |
9 |
12 |
15 |
18 |
21 |
24 |
27 |
30 |
4 |
4 |
8 |
12 |
16 |
20 |
24 |
28 |
32 |
36 |
40 |
5 |
5 |
10 |
15 |
20 |
25 |
30 |
35 |
40 |
45 |
50 |
6 |
6 |
12 |
18 |
24 |
30 |
36 |
42 |
48 |
54 |
60 |
7 |
7 |
14 |
21 |
28 |
35 |
42 |
49 |
56 |
63 |
70 |
8 |
8 |
16 |
24 |
32 |
40 |
48 |
56 |
64 |
72 |
80 |
9 |
9 |
18 |
27 |
36 |
45 |
54 |
63 |
72 |
81 |
90 |
10 |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
90 |
100 |
At the beginning of this section, there was an example that showed how to prepare the simplest table. Now, we will also use the Table
, TableCell
, and TableRow
elements, but additionally, we have to set the borders and span multiple columns in the first cell.
To set the borders, it is necessary to set special properties for the table. To do it, we have to use the TableProperties
and TableBorders
classes:
Table table = new Table(); TableProperties tblPr = new TableProperties(); TableBorders tblBorders = new TableBorders(); tblBorders.TopBorder = new TopBorder(); tblBorders.TopBorder.Val = new EnumValue<BorderValues>(BorderValues.Single); tblBorders.BottomBorder = new BottomBorder(); tblBorders.BottomBorder.Val =new EnumValue<BorderValues>( BorderValues.Single); tblBorders.LeftBorder = new LeftBorder(); tblBorders.LeftBorder.Val = new EnumValue<BorderValues>(BorderValues.Single); tblBorders.RightBorder = new RightBorder(); tblBorders.RightBorder.Val = new EnumValue<BorderValues>(BorderValues.Single); tblBorders.InsideHorizontalBorder = new InsideHorizontalBorder(); tblBorders.InsideHorizontalBorder.Val = BorderValues.Single; tblBorders.InsideVerticalBorder = new InsideVerticalBorder(); tblBorders.InsideVerticalBorder.Val = BorderValues.Single; tblPr.Append(tblBorders); table.Append(tblPr);
Now, let’s take a look at the first row and its cell. We have to set the span attribute to span 11 columns. To do it, we have to set the special properties for this cell (TableCellProperties
) and its GridSpan
property.
tr = new TableRow(); tc = new TableCell(new Paragraph(new Run(new Text("Multiplication table")))); TableCellProperties tcp=new TableCellProperties(); GridSpan gridSpan=new GridSpan(); gridSpan.Val=11; tcp.Append(gridSpan); tc.Append(tcp); tr.Append(tc);
Finally, we have the following function:
public void HelloWorld_table(string docName) { using (WordprocessingDocument myDoc = WordprocessingDocument.Create(docName, WordprocessingDocumentType.Document)) { MainDocumentPart mainPart = myDoc.AddMainDocumentPart(); mainPart.Document = new Document(); Body body = new Body(); Table table = new Table(); TableProperties tblPr = new TableProperties(); TableBorders tblBorders = new TableBorders(); tblBorders.TopBorder = new TopBorder(); tblBorders.TopBorder.Val = new EnumValue<bordervalues>(BorderValues.Single); tblBorders.BottomBorder = new BottomBorder(); tblBorders.BottomBorder.Val =new EnumValue<bordervalues>( BorderValues.Single); tblBorders.LeftBorder = new LeftBorder(); tblBorders.LeftBorder.Val = new EnumValue<bordervalues>(BorderValues.Single); tblBorders.RightBorder = new RightBorder(); tblBorders.RightBorder.Val = new EnumValue<bordervalues>(BorderValues.Single); tblBorders.InsideHorizontalBorder = new InsideHorizontalBorder(); tblBorders.InsideHorizontalBorder.Val = BorderValues.Single; tblBorders.InsideVerticalBorder = new InsideVerticalBorder(); tblBorders.InsideVerticalBorder.Val = BorderValues.Single; tblPr.Append(tblBorders); table.Append(tblPr); TableRow tr; TableCell tc; tr = new TableRow(); tc = new TableCell(new Paragraph(new Run( new Text("Multiplication table")))); TableCellProperties tcp=new TableCellProperties(); GridSpan gridSpan=new GridSpan(); gridSpan.Val=11; tcp.Append(gridSpan); tc.Append(tcp); tr.Append(tc); table.Append(tr); tr = new TableRow(); tc = new TableCell(); tc.Append(new Paragraph(new Run(new Text("*")))); tr.Append(tc); for (int i = 1; i <= 10; i++) { tr.Append(new TableCell(new Paragraph(new Run(new Text(i.ToString()))))); } table.Append(tr); for (int i = 1; i <= 10; i++) { tr = new TableRow(); tr.Append(new TableCell(new Paragraph(new Run(new Text(i.ToString()))))); for (int j = 1; j <= 10; j++) { tr.Append(new TableCell(new Paragraph(new Run(new Text((i*j).ToString()))))); } table.Append(tr); } body.Append(table); mainPart.Document.Append(body); mainPart.Document.Save(); } }
The code above produces the following document file in WordprocessingML:
="1.0"="utf-8" <w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> <w:body> <w:tbl> <w:tblpr> <w:tblborders> <w:top w:val="single" /> <w:left w:val="single" /> <w:bottom w:val="single" /> <w:right w:val="single" /> <w:insideh w:val="single" /> <w:insidev w:val="single" /> </w:tblborders> </w:tblpr> <w:tr> <w:tc> <w:p> <w:r> <w:t>Multiplication table</w:t> </w:r> </w:p> <w:tcpr> <w:gridspan w:val="11" /> </w:tcpr> </w:tc> </w:tr> <w:tr> <w:tc> <w:p> <w:r> <w:t>*</w:t> </w:r> </w:p> </w:tc> <w:tc> <w:p> <w:r> <w:t>1</w:t> </w:r> </w:p> </w:tc> <!—- many cells and rows declarations --> </w:tr> </w:tbl> </w:body> </w:document>
Summary
I hope that this simple article will be useful for developers that are interested in development using the Open XML Format SDK. I am going to update this article in future to show more about this SDK and this format. The Polish version is available in parts at my blog.
History
- 2009.05.24 — Initial version of this article (based on my posts (in Polish language) from my blog: http://maciej-progtech.blogspot.com/2009/04/open-xml-format-sdk-20-pierwsze.html).
Время на прочтение
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 Немного об XML
- 1.1 Способ 1: Visual Studio
- 1.2 Способ 2: Microsoft Excel
- 1.3 Способ 3: Блокнот
- 1.4 Помогла ли вам эта статья?
- 2 1Что такое XML файл?
- 3 2Как создать XML файл?
- 3.1 Способ 1
- 3.2 Способ 2
- 3.3 Способ 3
XML-формат предназначен для хранения данных, которые могут пригодиться в работе некоторых программ, сайтов и поддержки определённых языков разметки. Создать и открыть файл с таким форматом не сложно. Это вполне можно сделать, даже если на компьютере не установлено какое-либо специализированное программное обеспечение.
Сам по себе XML — это язык разметки, чем-то похожий на HTML, который используется на веб-страницах. Но если последний применяется только для вывода информации и её правильной разметки, то XML позволяет её структурировать определённым образом, что делает этот язык чем-то похожим на аналог базы данных, который не требует наличия СУБД.
Создавать XML-файлы можно как при помощи специализированных программ, так и встроенным в Windows текстовым редактором. От вида используемого ПО зависит удобство написания кода и уровень его функциональности.
Способ 1: Visual Studio
Вместо этого редактора кода от Microsoft можно использовать любой его аналог от других разработчиков. По факту Visual Studio является более расширенной версией обычного «Блокнота». Код теперь имеет специальную подсветку, ошибки выделяются или исправляются автоматически, также в программу уже загружены специальные шаблоны, которые позволяют упростить создание XML-файлов больших объёмов.
Для начала работы вам нужно создать файл. Нажмите по пункту «Файл» в верхней панели и из выпадающего меню выберите «Создать…». Откроется список, где указывается пункт «Файл».
Вас перебросит в окно с выбором расширения файла, соответственно выбирайте пункт «XML-файл».
В только что созданном файле уже будет первая строка с кодировкой и версией. По умолчанию прописана первая версия и кодировка UTF-8, которые вы можете поменять в любое время. Дальше для создания полноценного XML-файла вам нужно прописать всё то, что было в предыдущей инструкции.
По завершении работы снова выберите в верхней панели «Файл», а там из выпадающего меню пункт «Сохранить всё».
Способ 2: Microsoft Excel
Можно создать XML-файл и не прописывая код, например, при помощи современных версий Microsoft Excel, который позволяет сохранять таблицы с данным расширением. Однако нужно понимать, что в этом случае создать что-то более функциональное обычной таблицы не получится.
Такой способ больше подойдёт тем, кто не хочет или не умеет работать с кодом. Однако в этом случае пользователь может столкнуться с определёнными проблемами при перезаписи файла в XML-формат. К сожалению, проделать операцию преобразования обычной таблицы в XML можно только на самых новых версиях MS Excel. Чтобы это сделать, используйте следующую пошаговую инструкцию:
- Заполните таблицу каким-либо контентом.
- Нажмите на кнопку «Файл», что в верхнем меню.
- Откроется специальное окно, где нужно нажать на «Сохранить как…». Этот пункт можно найти в левом меню.
- Укажите папку, куда необходимо сохранить файл. Папка указывается в центральной части экрана.
- Теперь вам нужно указать название файла, а в разделе «Тип файла» из выпадающего меню выбрать
«XML-данные». - Нажмите на кнопку «Сохранить».
Способ 3: Блокнот
Для работы с XML вполне подойдёт даже обычный «Блокнот», однако пользователю, который не знаком с синтаксисом языка, придётся трудно, так как в нём нужно прописывать различные команды и теги. Несколько проще и значительно продуктивнее процесс будет идти в специализированных программах для редактирования кода, например, в Microsoft Visual Studio. В них есть специальная подсветка тегов и всплывающие подсказки, что значительно упрощает работу человеку, плохо знакомому с синтаксисом этого языка.
Для этого способа не потребуется что-либо скачивать, так как в операционную систему уже встроен «Блокнот». Давайте попробуем сделать в нём простую XML-таблицу по данной инструкции:
- Создайте обычный текстовый документ с расширением TXT. Разместить его можно где угодно. Откройте его.
- Начните прописывать в нём первые команды. Для начала нужно задать всему файлу кодировку и указать версию XML, делается это следующей командой:
Первое значение — это версия, её менять не обязательно, а второе значение — это кодировка. Рекомендуется использовать кодировку UTF-8, так как большинство программ и обработчиков работают с ней корректно. Однако её можно изменить на любую другую, просто прописав нужное название.
- Создайте первый каталог в вашем файле, прописав тег
и закрыв его таким образом
.
- Внутри этого тега теперь можно написать какой-нибудь контент. Создадим тег
и присвоим ему любое имя, например, «Иван Иванов». Готовая структура должна быть такой:
- Внутри тега
теперь можно прописать более подробные параметры, в данном случае это информация о неком Иване Иванове. Пропишем ему возраст и должность. Выглядеть это будет так:
25
True - Если вы следовали инструкции, то у вас должен получиться такой же код, как ниже. По завершении работы в верхнем меню найдите «Файл» и из выпадающего меню выберите «Сохранить как…». При сохранении в поле «Имя файла» после точки должно стоять расширение не TXT, а XML.
Примерно так у вас должен выглядеть готовый результат:
25
True
XML-компиляторы должны обработать этот код в виде таблицы с одной колонкой, где указаны данные о неком Иване Иванове.
В «Блокноте» вполне можно сделать несложные таблицы наподобие этой, но при создании более объёмных массивов данных могут возникнуть сложности, так как в обычном «Блокноте» нет функций исправления ошибок в коде или их подсветки.
Как видите в создании XML-файла нет ничего сложного. При желании его может создать любой пользователь, который более-менее умеет работать на компьютере. Однако для создания полноценного XML-файла рекомендуется изучить данный язык разметки, хотя бы на примитивном уровне.
Мы рады, что смогли помочь Вам в решении проблемы.
Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
Да Нет
Конвертер файлов / Документы / Конвертировать в DOC / XML конвертер / DOC в XML
Вы можете перевести DOC документ в XML и во множество других форматов с помощью бесплатного онлайн конвертера.
Как сконвертировать xml в doc?
Шаг 1
Загрузите doc-файл
Выберите файл с компьютера, Google Диска, Dropbox или перетащите его на страницу
Шаг 2
Выберите «в xml»
Выберите xml или любой другой формат, который вам нужен (более 100 поддерживаемых форматов)
Шаг 3
Скачайте ваш xml файл
Подождите пока ваш файл сконвертируется и вы сразу сможете его скачать xml -файл
Microsoft Word Document
Описание
DOC – специальное расширение, соответствующее документам, созданным в текстовом редакторе Microsoft World, до версии 2007 года. В этом формате хранятся сведения о форматировании текстового документа – абзацы, списки, отступы, выравнивания и многое другое. Файлы DOC могут включать в себя не только текстовую информацию, но и многочисленные изображения, графики, сценарии, диаграммы. DOC представляет собой расширение в формате двоичного файла, который начинается с информационного блока, выступающего ключевым элементом всей совокупности файлов данных. Такие двоичные файлы включают в себя довольно большой объем информации о форматировании текстового документа. Традиционно расширение получило широкое распространение для создания документов текстового формата в большом диапазоне ОС. Файлы в этом формате открываются любыми, в том числе современными версиями редактора Word или его аналогами из бесплатных пакетов вроде Open Office, Libre Office или утилитами наподобие Corel WordPerfect.
Технические детали
Первые версии файлового формата DOC приоритетно ориентировались на содержание форматированного текста, но со временем к нему добавилось большое количество встроенных объектов, среди которых встречаются как диаграммы и графики, так и различные медиа-файлы (звуки, видео). Файлы с расширением DOC способны содержать данные о слиянии, благодаря чему шаблон обработки слов может применяться вместе с таблицей либо базой данных.
Программы
Microsoft Word
OpenOffice.org Writer
IBM Lotus Symphony
Apple Pages
AbiWord
Основная программа
Microsoft Word
MIME type
application/msword
application/kswps
Extensible Markup Language
Программы
Microsoft Visual Studio 2013
JAPISoft EditiX
Wattle XMLwriter
MacroMates TextMate
Разработчик
World Wide Web Consortium
MIME type
application/xml
application/x-xml
text/xml
Практически во всей области программирования, уже на протяжении долго времени применяется данный тип файла. А создать его достаточно легко и просто. Более подробно о XML файле в данной статье.
1Что такое XML файл?
XML файл – это файл, который предназначен для ого, чтобы можно было отобразить определенные данные в документе. По своей сути XML (Extensible Markup Language) – язык программирования. В переводе обозначает – расширяемый язык.
- Благодаря XML можно создавать любые тэги, декларации. А также чтобы было удобнее хранить, передавать и обрабатывать данные.
- XML очень похож на язык разметки страницы – HTML, только XML позволяет вести структуру базы данных.
- Проще говоря, такой язык программирования был создан для того, чтобы данные, вводимые пользователем, мог понимать компьютер.
- К примеру, существует интернет-сайт. Для каждого сайта должна быть своя карта. Если карта сохранена в формате XML, то намного проще добавлять различные ссылки, новые страницы и другую необходимую информацию.
- Как и каждый язык программирования – XML имеет свой набор команд и правил.
2Как создать XML файл?
Создать XML файл можно несколькими способами. Рассмотрим самые известные программы для создания и открытия файла.
Способ 1
Блокнот. Простой и универсальный способ. Единственное в чем может возникнуть трудность, так это с синтаксисом языка, так как придется прописывать определённые команды в блокноте. Еще один минус – у блокнота минимальные функции для чтения XML файла.
Пошаговая инструкция создания XML файла в блокнот:
- Создать текстовый документ.
- Открыть документ.
- Для начала следует указать версию XML, для этого следует прописать такую команду:
- После чего следует создать каталог, для этого нужно прописать команду (тэг): . Но этот тэг необходимо закрыть. Для того чтобы его закрыть используется такой символ: «/». То есть закрытый тэг будет выглядеть вот так: .
- В самом теле тэга теперь можно прописать необходимые данные. Здесь уже важно знать все тонкости языка программирования XML.
- Нажать Файл / Сохранить как.
7. В названии документа указать расширение xml.
Способ 2
Используя программу Visual Studio. Данная программа – более улучшенная версия стандартного «Блокнота». Здесь проще прописывать тэги, коды и Visual Studio имеет больше функций. В целом это многофункциональна среда, которая предназначена для разработчиков.
Пошаговая инструкция:
- Запустить Visual Studio
- В меню выбрать: Файл. После чего выбрать: Создать файл.
- После чего откроется диалоговое окно, в котором необходимо выбрать тип файла XML.
- Внизу диалогового окна нажать: Открыть.
- После чего откроется рабочая область. То есть XML файл будет создан и можно приступать к работе. Будет сразу прописана версия XML.
- После завершения работы следует выбрать пункт в меню: «Сохранить все».
Способ 3
Открыть XML файл можно при помощи программы Excel.
Пошаговая инструкция:
- Создать документ MS Excel.
- Заполнить таблицу необходимой информацией.
- Нажать кнопку Файл / Сохранить как.
- В появившемся диалогом окне выбрать: Тип файла / XML данные.
- Нажать сохранить.
Кроме этого еще существуют компиляторы, в которых можно создать XML файл, но для этого необходимо знать хотя бы несколько языков программирования. Так как формирования файла происходит по средствам команд выбранного языка программирования. Приведем некоторые из них:
- Delphi;
- php;
- С # (в том числе 1 С8).
3Онлайн-генератор Sitemap
Благодаря этому сервису можно создать XML-карту для интернет сайта. Но приложение платное. Бесплатно можно использовать только 500 страниц.
В целом создать XML-файл очень просто, благодаря нынешним технологиям. Сейчас практически каждый пользователь с минимальными навыками программирования может создать такой файл и работать в нем с комфортом, так как не нужно все команды прописывать вручную, для этого уже придуманы специальные компиляторы.
Как сделать файл xml из word?
XML-формат предназначен для хранения данных, которые могут пригодиться в работе некоторых программ, сайтов и поддержки определённых языков разметки. Создать и открыть файл с таким форматом не сложно. Это вполне можно сделать, даже если на компьютере не установлено какое-либо специализированное программное обеспечение.
Немного об XML
Сам по себе XML — это язык разметки, чем-то похожий на HTML, который используется на веб-страницах. Но если последний применяется только для вывода информации и её правильной разметки, то XML позволяет её структурировать определённым образом, что делает этот язык чем-то похожим на аналог базы данных, который не требует наличия СУБД.
Создавать XML-файлы можно как при помощи специализированных программ, так и встроенным в Windows текстовым редактором. От вида используемого ПО зависит удобство написания кода и уровень его функциональности.
Способ 1: Visual Studio
Вместо этого редактора кода от Microsoft можно использовать любой его аналог от других разработчиков. По факту Visual Studio является более расширенной версией обычного «Блокнота». Код теперь имеет специальную подсветку, ошибки выделяются или исправляются автоматически, также в программу уже загружены специальные шаблоны, которые позволяют упростить создание XML-файлов больших объёмов.
Для начала работы вам нужно создать файл. Нажмите по пункту «Файл» в верхней панели и из выпадающего меню выберите «Создать…». Откроется список, где указывается пункт «Файл».
Вас перебросит в окно с выбором расширения файла, соответственно выбирайте пункт «XML-файл».
В только что созданном файле уже будет первая строка с кодировкой и версией. По умолчанию прописана первая версия и кодировка UTF-8, которые вы можете поменять в любое время. Дальше для создания полноценного XML-файла вам нужно прописать всё то, что было в предыдущей инструкции.
По завершении работы снова выберите в верхней панели «Файл», а там из выпадающего меню пункт «Сохранить всё».
Способ 2: Microsoft Excel
Можно создать XML-файл и не прописывая код, например, при помощи современных версий Microsoft Excel, который позволяет сохранять таблицы с данным расширением. Однако нужно понимать, что в этом случае создать что-то более функциональное обычной таблицы не получится.
Такой способ больше подойдёт тем, кто не хочет или не умеет работать с кодом. Однако в этом случае пользователь может столкнуться с определёнными проблемами при перезаписи файла в XML-формат. К сожалению, проделать операцию преобразования обычной таблицы в XML можно только на самых новых версиях MS Excel. Чтобы это сделать, используйте следующую пошаговую инструкцию:
- Заполните таблицу каким-либо контентом.
- Нажмите на кнопку «Файл», что в верхнем меню.
- Откроется специальное окно, где нужно нажать на «Сохранить как…». Этот пункт можно найти в левом меню.
- Укажите папку, куда необходимо сохранить файл. Папка указывается в центральной части экрана.
- Теперь вам нужно указать название файла, а в разделе «Тип файла» из выпадающего меню выбрать
«XML-данные». - Нажмите на кнопку «Сохранить».
Способ 3: Блокнот
Для работы с XML вполне подойдёт даже обычный «Блокнот», однако пользователю, который не знаком с синтаксисом языка, придётся трудно, так как в нём нужно прописывать различные команды и теги. Несколько проще и значительно продуктивнее процесс будет идти в специализированных программах для редактирования кода, например, в Microsoft Visual Studio. В них есть специальная подсветка тегов и всплывающие подсказки, что значительно упрощает работу человеку, плохо знакомому с синтаксисом этого языка.
Для этого способа не потребуется что-либо скачивать, так как в операционную систему уже встроен «Блокнот». Давайте попробуем сделать в нём простую XML-таблицу по данной инструкции:
- Создайте обычный текстовый документ с расширением TXT. Разместить его можно где угодно. Откройте его.
- Начните прописывать в нём первые команды. Для начала нужно задать всему файлу кодировку и указать версию XML, делается это следующей командой:
Первое значение — это версия, её менять не обязательно, а второе значение — это кодировка. Рекомендуется использовать кодировку UTF-8, так как большинство программ и обработчиков работают с ней корректно. Однако её можно изменить на любую другую, просто прописав нужное название.
Внутри тега теперь можно прописать более подробные параметры, в данном случае это информация о неком Иване Иванове. Пропишем ему возраст и должность. Выглядеть это будет так:
Примерно так у вас должен выглядеть готовый результат:
XML-компиляторы должны обработать этот код в виде таблицы с одной колонкой, где указаны данные о неком Иване Иванове.
В «Блокноте» вполне можно сделать несложные таблицы наподобие этой, но при создании более объёмных массивов данных могут возникнуть сложности, так как в обычном «Блокноте» нет функций исправления ошибок в коде или их подсветки.
Как видите в создании XML-файла нет ничего сложного. При желании его может создать любой пользователь, который более-менее умеет работать на компьютере. Однако для создания полноценного XML-файла рекомендуется изучить данный язык разметки, хотя бы на примитивном уровне.
Мы рады, что смогли помочь Вам в решении проблемы.
Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
Конвертер файлов / Документы / Конвертировать в DOC / XML конвертер / DOC в XML
Вы можете перевести DOC документ в XML и во множество других форматов с помощью бесплатного онлайн конвертера.
Как сконвертировать xml в doc?
Выберите файл с компьютера, Google Диска, Dropbox или перетащите его на страницу
Выберите xml или любой другой формат, который вам нужен (более 100 поддерживаемых форматов)
Скачайте ваш xml файл
Подождите пока ваш файл сконвертируется и вы сразу сможете его скачать xml -файл
Microsoft Word Document
DOC – специальное расширение, соответствующее документам, созданным в текстовом редакторе Microsoft World, до версии 2007 года. В этом формате хранятся сведения о форматировании текстового документа – абзацы, списки, отступы, выравнивания и многое другое. Файлы DOC могут включать в себя не только текстовую информацию, но и многочисленные изображения, графики, сценарии, диаграммы. DOC представляет собой расширение в формате двоичного файла, который начинается с информационного блока, выступающего ключевым элементом всей совокупности файлов данных. Такие двоичные файлы включают в себя довольно большой объем информации о форматировании текстового документа. Традиционно расширение получило широкое распространение для создания документов текстового формата в большом диапазоне ОС. Файлы в этом формате открываются любыми, в том числе современными версиями редактора Word или его аналогами из бесплатных пакетов вроде Open Office, Libre Office или утилитами наподобие Corel WordPerfect.
Первые версии файлового формата DOC приоритетно ориентировались на содержание форматированного текста, но со временем к нему добавилось большое количество встроенных объектов, среди которых встречаются как диаграммы и графики, так и различные медиа-файлы (звуки, видео). Файлы с расширением DOC способны содержать данные о слиянии, благодаря чему шаблон обработки слов может применяться вместе с таблицей либо базой данных.
Как xml перевести в word
Содержание статьи
- Как xml перевести в word
- Как открыть документ формата docx
- Как создать xml документ
Перевести xml в doc можно несколькими способами:
- используя возможности программы word;
- при помощи специальных онлайн-сервисов.
Подробнее разберем каждый из способов.
С помощью программы Word
Первым делом понадобится запустить Word. Сделать это можно через ярлык на рабочем столе или меню «Пуск». Затем необходимо открыть нужный xml файл. Чтобы сделать это, надо:
- Нажать на кнопку «Файл», расположенную в верхней левой части экрана.
- В открывшемся меню кликнуть на пункт «Открыть». Справа появится изображение папки с надписью «Обзор». При нажатии на нее откроется корневой каталог, в котором нужно найти xml-файл.
После этого потребуется снова кликнуть на кнопку «Файл» и щелкнуть мышкой на пункт «Сохранить как». Затем пользователь должен указать место для сохранения и в поле «Тип файла» выбрать «Документ word».
В указанном месте на компьютере появится файл с расширением doc. Теперь его можно спокойно открывать программой word или другим текстовым редактором.
При помощи онлайн-сервисов
Сделать это можно на специальных сайтах — конвертерах. Они предназначены для трансформации файлов из одного формата в другой. Таких сайтов в сети существует огромное множество, вот лишь некоторые из них:
- onlineconvertfree.com;
- coolutils.com;
- online-converting.ru;
- zamzar.com.
Рассмотрим процесс конвертации на примере сайте onlineconvertfree.com. Для этого потребуется зайти на ресурс и кликнуть по надписи «Конвертировать в», что находится сверху. Откроется выпадающее меню, в котором необходимо нажать на «Документы конвертер». Пользователь попадет на страницу, где расположена синяя кнопка «Выберите файл»
Дальнейший порядок действий будет выглядеть следующим образом:
- Нажать на кнопку и загрузить xml-файл.
- В появившемся окне выбрать пункт «в doc».
- Подождать, пока закончится процесс конвертации. Его скорость зависит от размера файла.
- Скачать готовый файл на компьютер.
После выполнения вышеуказанных действий его можно будет открыть в программе word. Конвертация файлов при помощи других сервисов проходит аналогичным образом, могут лишь немного отличаться названия разделов.
Перевести xml в doc не сложно, главное действовать по инструкции. Преобразовать файл возможно двумя способами. После конвертации его получится открыть и редактировать в word.
Как перевести документ Word в формат XML?
Как сделать файл xml из word?
XML-формат предназначен для хранения данных, которые могут пригодиться в работе некоторых программ, сайтов и поддержки определённых языков разметки. Создать и открыть файл с таким форматом не сложно. Это вполне можно сделать, даже если на компьютере не установлено какое-либо специализированное программное обеспечение.
Немного об XML
Сам по себе XML — это язык разметки, чем-то похожий на HTML, который используется на веб-страницах. Но если последний применяется только для вывода информации и её правильной разметки, то XML позволяет её структурировать определённым образом, что делает этот язык чем-то похожим на аналог базы данных, который не требует наличия СУБД.
Создавать XML-файлы можно как при помощи специализированных программ, так и встроенным в Windows текстовым редактором. От вида используемого ПО зависит удобство написания кода и уровень его функциональности.
Способ 1: Visual Studio
Вместо этого редактора кода от Microsoft можно использовать любой его аналог от других разработчиков. По факту Visual Studio является более расширенной версией обычного «Блокнота». Код теперь имеет специальную подсветку, ошибки выделяются или исправляются автоматически, также в программу уже загружены специальные шаблоны, которые позволяют упростить создание XML-файлов больших объёмов.
Для начала работы вам нужно создать файл. Нажмите по пункту «Файл» в верхней панели и из выпадающего меню выберите «Создать…». Откроется список, где указывается пункт «Файл».
Вас перебросит в окно с выбором расширения файла, соответственно выбирайте пункт «XML-файл».
В только что созданном файле уже будет первая строка с кодировкой и версией. По умолчанию прописана первая версия и кодировка UTF-8, которые вы можете поменять в любое время. Дальше для создания полноценного XML-файла вам нужно прописать всё то, что было в предыдущей инструкции.
По завершении работы снова выберите в верхней панели «Файл», а там из выпадающего меню пункт «Сохранить всё».
Способ 2: Microsoft Excel
Можно создать XML-файл и не прописывая код, например, при помощи современных версий Microsoft Excel, который позволяет сохранять таблицы с данным расширением. Однако нужно понимать, что в этом случае создать что-то более функциональное обычной таблицы не получится.
Такой способ больше подойдёт тем, кто не хочет или не умеет работать с кодом. Однако в этом случае пользователь может столкнуться с определёнными проблемами при перезаписи файла в XML-формат. К сожалению, проделать операцию преобразования обычной таблицы в XML можно только на самых новых версиях MS Excel. Чтобы это сделать, используйте следующую пошаговую инструкцию:
- Заполните таблицу каким-либо контентом.
- Нажмите на кнопку «Файл», что в верхнем меню.
- Откроется специальное окно, где нужно нажать на «Сохранить как…». Этот пункт можно найти в левом меню.
- Укажите папку, куда необходимо сохранить файл. Папка указывается в центральной части экрана.
- Теперь вам нужно указать название файла, а в разделе «Тип файла» из выпадающего меню выбрать
«XML-данные». - Нажмите на кнопку «Сохранить».
Способ 3: Блокнот
Для работы с XML вполне подойдёт даже обычный «Блокнот», однако пользователю, который не знаком с синтаксисом языка, придётся трудно, так как в нём нужно прописывать различные команды и теги. Несколько проще и значительно продуктивнее процесс будет идти в специализированных программах для редактирования кода, например, в Microsoft Visual Studio. В них есть специальная подсветка тегов и всплывающие подсказки, что значительно упрощает работу человеку, плохо знакомому с синтаксисом этого языка.
Для этого способа не потребуется что-либо скачивать, так как в операционную систему уже встроен «Блокнот». Давайте попробуем сделать в нём простую XML-таблицу по данной инструкции:
- Создайте обычный текстовый документ с расширением TXT. Разместить его можно где угодно. Откройте его.
- Начните прописывать в нём первые команды. Для начала нужно задать всему файлу кодировку и указать версию XML, делается это следующей командой:
Первое значение — это версия, её менять не обязательно, а второе значение — это кодировка. Рекомендуется использовать кодировку UTF-8, так как большинство программ и обработчиков работают с ней корректно. Однако её можно изменить на любую другую, просто прописав нужное название.
Примерно так у вас должен выглядеть готовый результат:
XML-компиляторы должны обработать этот код в виде таблицы с одной колонкой, где указаны данные о неком Иване Иванове.
В «Блокноте» вполне можно сделать несложные таблицы наподобие этой, но при создании более объёмных массивов данных могут возникнуть сложности, так как в обычном «Блокноте» нет функций исправления ошибок в коде или их подсветки.
Как видите в создании XML-файла нет ничего сложного. При желании его может создать любой пользователь, который более-менее умеет работать на компьютере. Однако для создания полноценного XML-файла рекомендуется изучить данный язык разметки, хотя бы на примитивном уровне.
Мы рады, что смогли помочь Вам в решении проблемы.
Как сделать файл xml из word? — Информатизация
Задача обработки документов в формате docx, а также таблиц xlsx и презентаций pptx является весьма нетривиальной. В этой статье расскажу как научиться парсить, создавать и обрабатывать такие документы используя только XSLT и ZIP архиватор.
Зачем?
docx — самый популярный формат документов, поэтому задача отдавать информацию пользователю в этом формате всегда может возникнуть. Один из вариантов решения этой проблемы — использование готовой библиотеки, может не подходить по ряду причин:
- библиотеки может просто не существовать
- в проекте не нужен ещё один чёрный ящик
- ограничения библиотеки по платформам и т.п.
- проблемы с лицензированием
- скорость работы
Поэтому в этой статье будем использовать только самые базовые инструменты для работы с docx документом.
Структура docx
Для начала разоберёмся с тем, что собой представляет docx документ. docx это zip архив который физически содержит 2 типа файлов:
- xml файлы с расширениями xml и rels
- медиа файлы (изображения и т.п.)
А логически — 3 вида элементов:
- Типы (Content Types) — список типов медиа файлов (например png) встречающихся в документе и типов частей документов (например документ, верхний колонтитул).
- Части (Parts) — отдельные части документа, для нашего документа это document.xml, сюда входят как xml документы так и медиа файлы.
- Связи (Relationships) идентифицируют части документа для ссылок (например связь между разделом документа и колонтитулом), а также тут определены внешние части (например гиперссылки).
Они подробно описаны в стандарте ECMA-376: Office Open XML File Formats, основная часть которого — PDF документ на 5000 страниц, и ещё 2000 страниц бонусного контента.
Минимальный docx
Простейший docx после распаковки выглядит следующим образом
Давайте посмотрим из чего он состоит.
[Content_Types].xml
Находится в корне документа и перечисляет MIME типы содержимого документа:
_rels/.rels
Главный список связей документа. В данном случае определена всего одна связь — сопоставление с идентификатором rId1 и файлом word/document.xml — основным телом документа.
word/document.xml
Основное содержимое документа.
word/document.xml
- — сам документ
- — тело документа
- — параграф
- — run (фрагмент) текста
- — сам текст
- — описание страницы
Если открыть этот документ в текстовом редакторе, то увидим документ из одного слова Test.
word/_rels/document.xml.rels
Здесь содержится список связей части word/document.xml. Название файла связей создаётся из названия части документа к которой он относится и добавления к нему расширения rels. Папка с файлом связей называется _rels и находится на том же уровне, что и часть к которой он относится. Так как связей в word/document.xml никаких нет то и в файле пусто:
Даже если связей нет, этот файл должен существовать.
docx и Microsoft Word
docx созданный с помощью Microsoft Word, да в принципе и с помощью любого другого редактора имеет несколько дополнительных файлов.
Вот что в них содержится:
- docProps/core.xml — основные метаданные документа согласно Open Packaging Conventions и Dublin Core [1], [2].
- docProps/app.xml — общая информация о документе: количество страниц, слов, символов, название приложения в котором был создан документ и т.п.
- word/settings.xml — настройки относящиеся к текущему документу.
- word/styles.xml — стили применимые к документу. Отделяют данные от представления.
- word/webSettings.xml — настройки отображения HTML частей документа и настройки того, как конвертировать документ в HTML.
- word/fontTable.xml — список шрифтов используемых в документе.
- word/theme1.xml — тема (состоит из цветовой схемы, шрифтов и форматирования).
В сложных документах частей может быть гораздо больше.
Реверс-инжиниринг docx
Итак, первоначальная задача — узнать как какой-либо фрагмент документа хранится в xml, чтобы потом создавать (или парсить) подобные документы самостоятельно. Для этого нам понадобятся:
- Архиватор zip
- Библиотека для форматирования XML (Word выдаёт XML без отступов, одной строкой)
- Средство для просмотра diff между файлами, я буду использовать git и TortoiseGit
Инструменты
Также понадобятся скрипты для автоматического (раз)архивирования и форматирования XML. Использование под Windows:
- unpack file dir — распаковывает документ file в папку dir и форматирует xml
- pack dir file — запаковывает папку dir в документ file
Использование под Linux аналогично, только ./unpack.sh вместо unpack, а pack становится ./pack.sh.
Использование
Поиск изменений происходит следующим образом:
- Создаём пустой docx файл в редакторе.
- Распаковываем его с помощью unpack в новую папку.
- Коммитим новую папку.
- Добавляем в файл из п. 1. изучаемый элемент (гиперссылку, таблицу и т.д.).
- Распаковываем изменённый файл в уже существующую папку.
- Изучаем diff, убирая ненужные изменения (перестановки связей, порядок пространств имён и т.п.).
- Запаковываем папку и проверяем что получившийся файл открывается.
- Коммитим изменённую папку.
Пример 1. Выделение текста жирным
Посмотрим на практике, как найти тег который определяет форматирование текста жирным шрифтом.
- Создаём документ bold.docx с обычным (не жирным) текстом Test.
- Распаковываем его: unpack bold.docx bold.
- Коммитим результат.
- Выделяем текст Test жирным.
- Распаковываем unpack bold.docx bold.
- Изначально diff выглядел следующим образом:
docProps/app.xml
Изменение времени нам не нужно.
docProps/core.xml
@@ -4,9 +4,9 @@— 1+ 2 2017-02-07T19:37:00Z— 2017-02-07T19:37:00Z
Изменение версии документа и даты модификации нас также не интересует.
word/settings.xml
Также не содержит ничего относящегося к жирному тексту. Отменяем.
7 Запаковываем папку с 1м изменением (добавлением ) и проверяем что документ открывается и показывает то, что ожидалось. 8 Коммитим изменение.
Пример 2. Нижний колонтитул
Теперь разберём пример посложнее — добавление нижнего колонтитула. Вот первоначальный коммит. Добавляем нижний колонтитул с текстом 123 и распаковываем документ. Такой diff получается первоначально:
Сразу же исключаем изменения в docProps/app.xml и docProps/core.xml — там тоже самое, что и в первом примере.
word/styles.xml
diff@@ -480,6 +480,50 @@
Изменения в стилях нас интересуют только если мы ищем как поменять стиль. В данном случае это изменение можно убрать.
Посмотрим теперь собственно на сам нижний колонтитул (часть пространств имён опущена для читабельности, но в документе они должны быть):
Тут виден текст 123. Единственное, что надо исправить — убрать ссылку на .
В результате анализа всех изменений делаем следующие предположения:
- footnotes и endnotes не нужны
- В [Content_Types].xml надо добавить footer
- В word/_rels/document.xml.rels надо добавить ссылку на footer
- В word/document.xml в тег надо добавить
Уменьшаем diff до этого набора изменений:
Затем запаковываем документ и открываем его. Если всё сделано правильно, то документ откроется и в нём будет нижний колонтитул с текстом 123. А вот и итоговый коммит.
Таким образом процесс поиска изменений сводится к поиску минимального набора изменений, достаточного для достижения заданного результата.
Практика
Найдя интересующее нас изменение, логично перейти к следующему этапу, это может быть что-либо из:
- Создания docx
- Парсинг docx
- Преобразования docx
Тут нам потребуются знания XSLT и XPath.
Давайте напишем достаточно простое преобразование — замену или добавление нижнего колонтитула в существующий документ. Писать я буду на языке Caché ObjectScript, но даже если вы его не знаете — не беда. В основном будем вызовать XSLT и архиватор. Ничего более. Итак, приступим.
Алгоритм
Алгоритм выглядит следующим образом:
- Распаковываем документ.
- Добавляем наш нижний колонтитул.
- Прописываем ссылку на него в [Content_Types].xml и word/_rels/document.xml.rels.
- В word/document.xml в тег добавляем тег или заменяем в нём ссылку на наш нижний колонтитул.
- Запаковываем документ.
Распаковка
В Caché ObjectScript есть возможность выполнять команды ОС с помощью функции $zf(-1, oscommand). Вызовем unzip для распаковки документа с помощью обёртки над $zf(-1):
/// Используя %3 (unzip) распаковать файл %1 в папку %2
Parameter UNZIP = «%3 %1 -d %2»;
Создаём файл нижнего колонтитула
На вход поступает текст нижнего колонтитула, запишем его в файл in.xml:
В XSLT (файл — footer.xsl) будем создавать нижний колонтитул с текстом из тега xml (часть пространств имён опущена, вот полный список):
Теперь вызовем XSLT преобразователь:
do ##class(%XML.XSLT.Transformer).TransformFile(«in.xml», «footer.xsl», footer0.xml»)
В результате получится файл нижнего колонтитула footer0.xml:
Добавляем ссылку на колонтитул в список связей основного документа
Сссылки с идентификатором rId0 как правило не существует. Впрочем можно использовать XPath для получения идентификатора которого точно не существует. Добавляем ссылку на footer0.xml c идентификатором rId0 в word/_rels/document.xml.rels:
Прописываем ссылки в документе
Далее надо в каждый тег добавить тег или заменить в нём ссылку на наш нижний колонтитул. Оказалось, что у каждого тега может быть 3 тега — для первой страницы, четных страниц и всего остального:
Добавляем колонтитул в [Content_Types].xml
Добавляем в [Content_Types].xml информацию о том, что /word/footer0.xml имеет тип application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml:
В результате
Весь код опубликован. Работает он так:
do ##class(Converter.Footer).modifyFooter(«in.docx», «out.docx», «TEST»)
- in.docx — исходный документ
- out.docx — выходящий документ
- TEST — текст, который добавляется в нижний колонтитул
Есть документ Word, как сохранить его с другими параметрами?
Есть документ Word, как сохранить его с другими параметрами?
Как известно, компания Микрософт преуспела в создании различных версий программы Word, при этом у пользователей вызывали недоумение некоторые нововведения, но в целом, надо отметить, текстовый редактор стал более совершеннее и многофункциональнее.
Кто помнит, первоначальный формат сохранения документов был с расширением .doc. Для нынешнего поколения пользователей известно, в большинстве своем, расширение .docx для файлов Word.
Давайте поговорим на профессиональном языке о новом формате сохранения текстовых документов ворд, и затем узнаем, как можно сохранить документ, который уже был ранее создан и сохранён, но уже с другими параметрами. Ведь их несколько у программы ворд.
О новом формате сохранения документов в ms word
Новый формат Word– Microsoft Office Open XML При сохранении документа по умолчанию задается новый тип файла – .docx, основанный на поддержке языка XML. Хотя такой формат и не является новинкой в полном смысле этого слова – еще в 1999 году появились первые способы данной поддержки в «Office» 2000, – он стал следующим шагом в сохранении документов.
Тотальное внедрение этого формата, прежде всего, связано с переводом Microsoft Office на открытые стандарты, обеспечивающие более оперативное создание и взаимодействие документов, ускоренный обмен данными с другими корпоративными бизнес-приложениями.
Другие публикации каналаСохраняем правильно документ Word: а как это делаете вы?Видите ли вы, что делаете в программе Word?Подложка, фон и текстовое поле: много ли знаете об этом?Пять фишек, которые помогут улучшить работу в WordЧем панель инструментов Word отличается от панели быстрого доступа
Форматом сохранения документов по умолчанию стал ZIP-контейнер, доступный на бесплатной основе и соответствующий спецификации Open Packaging Conventions. Он пришел на смену бинарному формату хранения документов, использовавшемуся в предыдущих версиях «MS Office».
Данный XML-формат представляет собой обычный ZIP-архив, который выполняет роль контейнера и называется package. Уже в нем размещаются различные компоненты документа, называемые частями (part) и элементами (item).
При этом части являются фрагментами документа и отвечают за его содержимое, а элементы, в свою очередь, представляют собой метаданные, расписывающие, каким образом эти части собираются вместе и как отображены. Но не все части документа могут быть сохранены в XML-формате.
Графические изображения форматов PNG, JPG, TIFF хранятся в оригинальном виде, что, впрочем, делает доступ к ним более удобным. Помимо этого, в бинарном виде сохраняются и внедренные в документы OLE-объекты.
Таким образом, благодаря автоматическому сжатию документа размер его может быть на 70–80% меньше исходного. Помимо этого, облегчен процесс восстановления данных в случае сбоя за счет модульной схемы хранения данных.
Так как OLE_объекты и макросы (код VBA) хранятся в отдельной секции, документы в целом становятся менее уязвимыми для вирусов и зловредных макрокоманд.
Какие форматы сохранения документов Word существуют?
Все новые расширения файлов в Word базируются на именах предыдущих, с учетом – с макросами или без:
– .docx– документ Office Word XML (формат Word по умолчанию, без хранения макрокода VBA), формат Word 2019, Word 2016, Word 2013, Word 2010 и Office Word 2007;
– .docm – документ Office Word XML с макросами (формат Word с возможностью хранения макрокода VBA), для Word 2019, Word 2016, Word 2013, Word 2010 и Office Word 2007;
– .dotx – шаблон Office Word XML (формат шаблона Word по умолчанию), для создания новых шаблонов Word 2019, Word 2016, Word 2013, Word 2010 и Office Word 2007, не содержащих макросы.
– .dotm – шаблон Office Word XML с макросами (формат шаблона Word возможностью хранения макрокода VBA), для создания новых шаблонов Word 2019, Word 2016, Word 2013, Word 2010 и Office Word 2007, содержащих макросы. Этот формат файлов следует использовать пользователям, которые хотят включить настройки пользовательского интерфейса или макросы в шаблон;
Таким образом, если необходимо открыть XML-файл с разрешением .docx, его можно будет просмотреть обычным архиватором WinRar или WinZip.
Документ Word 97–2003 – как уже говорилось, привычный формат сохранения данных в начале двухтысячных. Документ, созданный в последних версиях Word со всеми новыми возможностями программы, при сохранении в данном формате теряет некоторые свои характеристики.
В каких еще форматах можно сохранять документы в word?
Поскольку нет предела совершенству, разработчики предлагают в программе Word сохранять в самых разных форматах (см. таблицу)
Форматы сохранения файлов в программе Word
А теперь давайте представим, что у вас есть документ, который называется Документ Васи.doc или Это документ Маруси.txt
Как видите есть отличия в формате сохранения документов от тех, которые предлагает последняя версия программы MS Word, например, это было бы Документ Васи.docx или Это документ Маруси.dotx не так ли? Так давайте рассмотрим, как же изменить эти и другие параметры?
Как сохранить ранее сохраненный документ, но с другими параметрами?
Чтобы сохранить созданный ранее документ, но теперь уже под другим Именем или по другому Адресу (в другой папке) или с другим Типом расширения (форматом), воспользуйтесь одним из способов, представленных ниже:
1 способ: при открытом окне документа нажимаем на клавиатуре клавишу F12.
В появившемся окне выбираем Папку, даём Имя файлу, раскрываем меню с Типом файла и далее нажимаем ОК (см. Рис.)
Сохранение документа с другим параметром формата
1. В верхнем левом углу окна программы щелкаем по кнопке «Файл».
2. В меню типичных команд выбираем пункт «Сохранить как».
3. Сколько бы раз до этого документ ни был сохранен, по этой команде вновь откроется окно сохранения документа (см. выше Рис.), в котором можно снова выбрать все параметры сохранения.
Сохраняем правильно документ Word: а как это делаете вы>>
4. Задаем новое имя или выбираем новое место для сохранения документа, или же и то, и другое, и далее следуем всем инструкциям для обычного сохранения.
5. Завершаем сохранение щелчком по кнопке «Сохранить» или нажатием клавиши Enter.
Важно! С этого момента работа будет продолжаться только с документом, сохраненным с новыми параметрами, а документ, первоначально открытый для использования, будет автоматически закрыт без изменения.
В статье мы рассмотрели форматы (расширения) сохранения документов в программе Word.
Ставьте лайк и в последующих уроках и статьях я вам расскажу, как создавать стили, быстро редактировать документы, создавать оглавление и многое другое. Подписывайтесь на канал «Изучаем Word: шаг за шагом», чтобы статьи появлялись в вашей ленте. А также давайте добавим статью в #база знаний с помощью хештега. До встречи!
Перевод ворд в xml
Перевести xml в doc можно несколькими способами:
- используя возможности программы word;
- при помощи специальных онлайн-сервисов.
Подробнее разберем каждый из способов.
С помощью программы word
Первым делом понадобится запустить Word. Сделать это можно через ярлык на рабочем столе или меню «Пуск». Затем необходимо открыть нужный xml файл. Чтобы сделать это, надо:
- Нажать на кнопку «Файл», расположенную в верхней левой части экрана.
- В открывшемся меню кликнуть на пункт «Открыть». Справа появится изображение папки с надписью «Обзор». При нажатии на нее откроется корневой каталог, в котором нужно найти xml-файл.
После этого потребуется снова кликнуть на кнопку «Файл» и щелкнуть мышкой на пункт «Сохранить как». Затем пользователь должен указать место для сохранения и в поле «Тип файла» выбрать «Документ word».
В указанном месте на компьютере появится файл с расширением doc. Теперь его можно спокойно открывать программой word или другим текстовым редактором.
При помощи онлайн-сервисов
Сделать это можно на специальных сайтах — конвертерах. Они предназначены для трансформации файлов из одного формата в другой. Таких сайтов в сети существует огромное множество, вот лишь некоторые из них:
- onlineconvertfree.com;
- coolutils.com;
- online-converting.ru;
- zamzar.com.
Рассмотрим процесс конвертации на примере сайте onlineconvertfree.com. Для этого потребуется зайти на ресурс и кликнуть по надписи «Конвертировать в», что находится сверху. Откроется выпадающее меню, в котором необходимо нажать на «Документы конвертер». Пользователь попадет на страницу, где расположена синяя кнопка «Выберите файл»
Дальнейший порядок действий будет выглядеть следующим образом:
- Нажать на кнопку и загрузить xml-файл.
- В появившемся окне выбрать пункт «в doc».
- Подождать, пока закончится процесс конвертации. Его скорость зависит от размера файла.
- Скачать готовый файл на компьютер.
После выполнения вышеуказанных действий его можно будет открыть в программе word. Конвертация файлов при помощи других сервисов проходит аналогичным образом, могут лишь немного отличаться названия разделов.
Перевести xml в doc не сложно, главное действовать по инструкции. Преобразовать файл возможно двумя способами. После конвертации его получится открыть и редактировать в word.
Как сделать файл xml из word?
XML-формат предназначен для хранения данных, которые могут пригодиться в работе некоторых программ, сайтов и поддержки определённых языков разметки. Создать и открыть файл с таким форматом не сложно. Это вполне можно сделать, даже если на компьютере не установлено какое-либо специализированное программное обеспечение.