Время на прочтение
25 мин
Количество просмотров 34K
Недавно мне понадобилось встроить в CRM возможность создания отчетов в Excel посредством PHP, но готовые решения были сильно громоздкими. Поэтому я решил написать собственную библиотеку для работы с Excel файлами через PHP. Но информации о внутренности Excel было очень мало и мне пришлось собирать ее по крупинкам, иногда методами тыка, проб и ошибок разбирал работу некоторых элементов.
На написание данной статьи меня натолкнули уже существующие статьи от @Lachrimae.
Но дополнять ее в комментариях — очень громоздко и неудобно. Поэтому я решил поделиться всеми свои знаниями в новой статье, и если это поможет кому-то, то мои старания будут более, чем не напрасны.
Оглавление:
-
Структура файлов;
-
Разбор файла _rels/.rels;
-
Разбор docProps/app.xml;
-
Разбор docProps/core.xml;
-
Разбор xl/_rels/workbook.xml.rels;
-
Разбор xl/printerSettings/printerSettings1.bin;
-
Разбор xl/theme/theme1.xml;
-
Разбор xl/worksheets/_rels/sheet1.xml.rels;
-
Разбор xl/worksheets/sheet1.xml;
-
Разбор xl/caclChain.xml;
-
Разбор xl/sharedStrings.xml;
-
Разбор xl/styles.xml;
-
Разбор xl/workbook.xml;
-
Разбор [Content_Types].xml;
-
Завершение.
Структура файлов
Так как Excel — это архив файлов .xml, то мы можем его распаковать и увидеть следующее содержание:
Некоторые файлы могут отсутствовать, такие как: xl/worksheets/_rels/sheet.xml.rels, xl/calcChain.xml, xl/printerSettings/printerSettings1.bin и sharedString.xml
В папках xl/worksheets, xl/printerSettings и xl/worksheets/_rels могут быть по несколько файлов.
Давайте разберёмся, для чего все эти файлы, начнём по порядку:
_rels/.rels — описание связей файлов, касаемых самой работы Excel;
docProps/app.xml — описание и настройки приложения Excel;
docProps/core.xml — здесь записывается имя создателя файла, время создания и последнего редактирования файла;
xl/_rels/workbook.xml.rels — перечень и описание зависимостей файлов, используемых в книге;
xl/printerSettings/printerSettings1.bin — описание настроек для печати листа;
xl/theme/theme1.xml — описание стилей приложения;
xl/worksheets/_rels/sheet1.xml.rels — описание связей листа xl/worksheets/sheet1.xml с другими документами;
xl/worksheets/sheet1.xml — описание всего происходящего на листе, который находится на первой позиции в списке листов книги. Название листа и название файла никак не связаны, файл всегда называется sheet1, sheet2 и т.д. На каждый лист приходится один такой файл;
xl/caclChain.xml — цепочка вычислений. Конструкция, указывающая порядок вычислений ячеек в книге в последний раз;
xl/sharedStrings.xml — перечень строковых значений, используемых во всей книге;
xl/styles.xml — описание стилей, используемых во всей книге;
xl/workbook.xml — описание настроек книги и перечень используемых листов;
[Content_Types].xml — описание всех файлов и их типов.
Разбор файла _rels/.rels
Если открыть файл — мы увидим следующее содержание:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/>
<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/>
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>
</Relationships>
В первой строке у нас объявляется тип документа — xml с его версией, кодировкой и автономности.
standalone (автономность) — Это объявление указывает, содержит ли внешнее подмножество DTD (Document Type Definition — определение типа документа) какие-либо объявления, которые могут повлиять на текущее содержимое документа.
Вторая строчка — открывающий тег для описания связей документов. Атрибут xmlns — означает, что используется пространство имен, от сюда и название самого атрибута — xml NameSpace.
Далее идут 3 строки связей с документами. У каждого есть атрибуты: Id — уникальное имя для связи, Type — ссылка на стандарт, описывающий нужный нам тип документа, Target — путь к исполняемому файлу.
Разбор docProps/app.xml
Содержимое данного файла примерно такая (не все элементы могут присутствовать и иметь тот же вид, что и у меня):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">
<Application>Microsoft Excel</Application>
<DocSecurity>0</DocSecurity>
<ScaleCrop>false</ScaleCrop>
<HeadingPairs>
<vt:vector size="2" baseType="variant">
<vt:variant>
<vt:lpstr>Worksheets</vt:lpstr>
</vt:variant>
<vt:variant>
<vt:i4>1</vt:i4>
</vt:variant>
</vt:vector>
</HeadingPairs>
<TitlesOfParts>
<vt:vector size="1" baseType="lpstr">
<vt:lpstr>Лист 1</vt:lpstr>
</vt:vector>
</TitlesOfParts>
<Company></Company>
<LinksUpToDate>false</LinksUpToDate>
<SharedDoc>false</SharedDoc>
<HyperlinksChanged>false</HyperlinksChanged>
<AppVersion>14.0300</AppVersion>
</Properties>
Первая строка нам уже знакома.
Во второй строке открывающий тег properties и эта строка похожа на рассмотренную нами ранее.
Третья строка содержит название приложения. В данном случае — Microsoft Excel (что не удивительно). Данную строку лучше не изменять, ибо приложение упадет.
Следующая строка:
<DocSecurity>0</DocSecurity>
Означает безопасность документа и в зависимости от числа имеет следующий посыл:
0 — Документ не защищен
1 — Документ защищен паролем.
2 — Рекомендуется открывать документ только для чтения.
4 — Документ принудительно открыт только для чтения.
8 — Документ заблокирован для заметок.
Строка:
<ScaleCrop>false</ScaleCrop>
указывает режим отображения эскиза документа. Установите для этого элемента значение TRUE, чтобы включить масштабирование эскиза документа на экране. Установите для этого элемента значение FALSE, чтобы включить обрезку эскиза документа, чтобы отображались только те разделы, которые соответствуют отображаемому значению (из документации microsoft).
Далее открывается тег HeadingPairs, внутри которого описаны группы частей документа и количество частей в каждой группе. Эти части являются не частями документа, а концептуальными представлениями разделов документа.
Внутри HeadingPairs мы имеем 1 векторный контент, в котором имеются 2 его части (подробнее о векторах и baseType можно почитать в документации microsoft).
Первая часть означает, что мы описываем листы в книге, а во второй части указываем количество этих листов.
Следующий тег — TitlesOfParts. Он описывает наименования частей документа. в данном случае — названия листов в книге. Здесь также указывается количество частей векторного контента.
В теге Company можно записать название компании.
Следующий элемент — LinksUpToDate — указывает, актуальны ли гиперссылки в документе. Установите для этого элемента значение TRUE, чтобы показать, что гиперссылки обновлены. Установите для этого элемента значение FALSE, чтобы указать, что гиперссылки устарели (из документации microsoft).
Элемент SharedDoc указывает, является ли этот документ в настоящее время общим для нескольких производителей. Если для этого элемента установлено значение TRUE, производителям следует проявлять осторожность при обновлении документа.
HyperlinksChanged указывает, что одна или несколько гиперссылок в этой части были обновлены исключительно в этой части производителем. Следующий производитель, который откроет этот документ, обновит отношения гиперссылок новыми гиперссылками, указанными в этой части.
Тег AppVersion указывает версию используемого приложения Excel при создании файла
Разбор docProps/core.xml
Содержимое файла примерно таково:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dc:creator>Виктор</dc:creator>
<dcterms:created xsi:type="dcterms:W3CDTF">2006-09-16T00:00:00Z</dcterms:created>
<dcterms:modified xsi:type="dcterms:W3CDTF">2006-09-16T00:00:00Z</dcterms:modified>
</cp:coreProperties>
Первая строка нам уже знакома.
Во второй строке открывающий тег cp:coreProperties и эта строка похожа на рассмотренную нами ранее. Внутри него описываются свойства приложения:
dc:creator — Имя создателя документа;
dcterms:created — дата и время создания файла;
dcterms:modified — дата и время последнего изменения файла;
Разбор xl/_rels/workbook.xml.rels
Примерное содержимое файла:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/>
<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>
<Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml"/>
<Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings" Target="sharedStrings.xml"/>
<Relationship Id="rId5" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/calcChain" Target="calcChain.xml"/>
</Relationships>
Этот файл похож на раннее рассмотренный нами, только здесь уже описываются зависимости для файлов, которые используются непосредственно в книге.
Здесь записаны зависимости всех листов в книге, файла со строковыми значениями, цепочками вычислений и прочих файлов (мы разберем эти файлы дальше)
Разбор xl/printerSettings/printerSettings1.bin
Это файл, содержащий код в бинарном виде. Чтобы разобрать этот файл нужно описать много вещей про бинарники, а, чтобы научить писать правильно такой файл, потребуется много сил, времени и много текста. Да и в целом не вижу смысла вам работать с этим файлом. (честно говоря, я сам поверхностно знаком с этой темой).
Разбор xl/theme/theme1.xml
У меня не было надобностей разбирать этот файл, поэтому пока не буду описывать его работу. Но если кому-то понадобится (не знаю зачем) подробный разбор этого файла — я постараюсь сделать это.
Разбор xl/worksheets/_rels/sheet1.xml.rels
Содержимое этого файла может быть следующим:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings" Target="../printerSettings/printerSettings1.bin"/>
</Relationships>
Здесь описана одна зависимость с файлом xl/printerSettings/printerSettings1.bin — настройками для печати.
Разбор xl/worksheets/sheet1.xml
Начинается самое интересное и большое в этой статье.
Начинается такой файл с обычного объявления типа документа xml и некоторых настроек:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">
<dimension ref="A1"/>
<sheetViews>
<sheetView tabSelected="1" workbookViewId="0">
<selection activeCell="J10" sqref="J10"/>
<pane ySplit="1" topLeftCell="A2" activePane="bottomRight" state="frozen"/>
</sheetView>
</sheetViews>
<sheetFormatPr defaultRowHeight="15" x14ac:dyDescent="0.25"/>
<cols>
<col min="1" max="1" width="12" customWidth="1"/>
<col min="3" max="5" width="14" customWidth="1"/>
<col min="6" max="7" width="31" customWidth="1"/>
</cols>
<sheetData/>
<mergeCells count="40">
<mergeCell ref="G15:I15"/>
<mergeCell ref="E3:F3"/>
<mergeCell ref="E4:F4"/>
</mergeCells>
<autoFilter ref="A1:N1"/>
<printOptions headings="1" gridLines="1"/>
<pageMargins left="0.7" right="0.7" top="0.7" bottom="0.7" header="0.3" footer="0.3"/>
<pageSetup paperSize="9" pageOrder="overThenDown" orientation="portrait" blackAndWhite="1" draft="1" cellComments="atEnd" errors="NA" r:id="rId1"/>
</worksheet>
Строка третья означает размер экспортируемого диапазона (с какой по какую ячейку находятся данные).
В теге sheetView — selection описывается выделенная клетка (или диапазон клеток).
Атрибут activeCell — активная ячейка, sqref — выделенная ячейка или диапазон ячеек.
такая строка может выглядеть и вот так:
<selection activeCellId="2" sqref="A1:B2 B2:C3 A1:C3"/>
Здесь уже вместо атрибута activeCell стоит activeCellId, потому что в атрибуте sqref мы видим несколько диапазонов. исходя из этого выясняем, что активный диапазон является A1:C3. на изображении ниже показано, как выглядит такой вариант выделения ячеек.
Про тег pane, sheetFormatPr и cols хорошо рассказано в статье от @Lachrimae:
Собственно, закрепление строки — тег <pane />. И вот какие здесь использованы атрибуты:
ySplit — показывает количество закрепленных строк. Для закрепления столбцов есть аналогичный атрибут xSplit;
topLeftCell — указание левой верхней ячейки, видимой по умолчанию НЕзакрепленной области;
activePane — указание местонахождения НЕзакрепленной области. В руководствах сказано, что этот атрибут регулирует, с какой стороны будет НЕзакрепленная область. Правда, попробовав разные значения, я почему-то получил одинаковый результат. Как вариант «by default» я для себя выбрал bottomRight;
state — указатель состояния закрепленной области. Для простого закрепления строки используется значение frozen
Тег <sheetFormatPr />. Пример:
<sheetFormatPr defaultRowHeight="15" x14ac:dyDescent="0.25"/>
Интересен нам здесь в основном атрибут defaultRowHeight, то есть высота столбца по умолчанию. Стандартный, привычный нам вариант — 15 у.е. Если назначить его, скажем, 30 у.е., то строки, для которых высота не указана отдельно, станут в 2 раза выше. Однако, для того чтоб применить значение, отличное от дефолтного, необходимо указать атрибут customHeight со значением «true». Выглядит это примерно так:
<sheetFormatPr defaultRowHeight="30" customHeight="true" x14ac:dyDescent="0.25"/>
Тег </cols>. Помогает установить ширину столбцов отличную от дефолтной. В заполненном виде выглядит примерно так:
Вложенные теги </col> обозначают не каждый один столбец, как могло показаться, а группу столбцов, идущих подряд и имеющих единую ширину.
Атрибут min — первый столбец группы;
Атрибут max — последний столбец группы;
Атрибут width — ширина столбца из группы;
Атрибут customWidth — флаг применения кастомной ширины, без него ширина все равно будет дефолтной;
Тег sheetData — описание содержимого ячеек и их настроек.
здесь структура такова:
<sheetData>
<row r="1" spans="1:5" ht="18" customHeight="1" x14ac:dyDescent="0.25">
<c r="A1">
<v>1</v>
</c>
<c r="B1" t="s">
<v>0</v>
</c>
<c r="C1" t="s">
<v>1</v>
</c>
<c r="D1" t="s">
<v>2</v>
</c>
<c r="E1">
<v>1</v>
</c>
</row>
<row r="4" spans="1:5" x14ac:dyDescent="0.25">
<c r="A4" t="s">
<v>2</v>
</c>
<c r="B4">
<f>SUM(A1:E1)</f>
<v>2</v>
</c>
</row>
</sheetData>
В Excel это будет выглядеть вот так:
Давайте разбираться, что же все-таки в коде происходит.
Мы видим два тега row — это наши строки. У каждой есть атрибут r — это номер строки. Атрибут spans означает сколько столбцов задействовано, dyDescent — вертикальное расстояние в пикселях между ячейками. Атрибут ht устанавливает высоту всей строки в пунктах, а тег customHeight говорит, что мы используем нестандартную высоту строки.
В теге row есть теги c — это ячейки в строке. у каждого тега есть атрибут r — означающий позицию ячейки. Но атрибут t — присутствует не у всех, потому что запись t=»s» — означает, что у ячейки установлен тип строки, а у кого этого атрибута нет — тип устанавливается стандартный — числовой. Еще у тегов c может присутствовать атрибут s, в котором записывается номер применяемого к ячейке стиля из файла xl/styles.xml (мы доберемся до него позже).
Внутри тегов c есть теги v — это наши значения, записываемые в ячейки. Но не все так просто. Те значения, которые находятся в теге c без атрибута t — те значения записываются без изменений, т.е. записывается в ячейку само число из тега v, а вот те значения, которые находятся в теге c с атрибутом t — уже обрабатываются по-другому: в теге v записан порядковый номер строки в файле xl/sharedStrings.xml (мы доберемся до него позже). В ячейку уже записывается строка, которая имеет порядковый номер, записанный в теге v.
Но мы можем заметить, что одна ячейка имеет помимо тега v еще тег f. Это тег с формулой, в данном случае формула означает: сумма ячеек от A1 до E1. А в теге v записан уже посчитанный ответ. Делать это не обязательно, но если не записать — то при открытии документа excel предложит сохранить изменения, т.к. он сам автоматически посчитал и записал этот результат.
С тегом sheetData разобрались, идем дальше.
Про теги mergeCells и autoFilter снова обратимся к статье от @Lachrimae:
Тег <mergeCells />.
Как мы знаем, в Excel есть возможность объединения ячеек. Все объединенные ячейки на листе перечислены здесь. В заполненном виде тег выглядит примерно так:
<mergeCells count="40">
<mergeCell ref="G15:I15"/>
<mergeCell ref="E3:F3"/>
<mergeCell ref="E4:F4"/>
</mergeCells>
Как видно, одна объединенная ячейка обозначена одним тегом <mergeCell /> с единственным атрибутом ref, задающим диапазон объединения.
Тег <autoFilter />. Фильтры, которые так любят видеть в отчетах наши пользователи. В заполненном виде тег выглядит так:
<autoFilter ref="A1:N1"/>
Нетрудно понять, что атрибут ref задает зону, занимаемую активными ячейками фильтров.
Тег printOptions — параметры печати. Атрибут headings — означает, что будут печататься заголовки, а атрибут gridLines — что будут печататься линии сетки.
Тег pageMargins задает поля сверху, снизу, справа, слева, у заголовков и у подвала для печатаемой страницы.
Тег pageSetup предпочтительные настройки бумаги, опять же, для печати.
Атрибут paperSize — устанавливает размер бумаги.
Используемые значения:
Значение |
Описание |
---|---|
16 |
10 в. x 14 в. |
17 |
11 в. x 17 в. |
8 |
A3 (297 мм x 420 мм) |
9 |
A4 (210 мм x 297 мм) |
10 |
A4 Small (210 мм x 297 мм) |
11 |
A5 (148 мм x 210 мм) |
12 |
B4 (250 мм x 354 мм) |
13 |
A5 (148 мм x 210 мм) |
24 |
Лист размеров C |
25 |
Лист размеров D |
20 |
Конверт #10 (4-1/8 в. x 9-1/2 в.) |
21 |
Конверт #11 (4-1/2 в. x 10-3/8 in.) |
22 |
Конверт #12 (4-1/2 в. x 11 in.) |
23 |
Конверт #14 (5 в. x 11-1/2 в.) |
19 |
Конверт #9 (3-7/8 в. x 8-7/8 in.) |
33 |
Конверт B4 (250 мм x 353 мм) |
34 |
Конверт B5 (176 мм x 250 мм) |
35 |
Конверт B6 (176 мм x 125 мм) |
29 |
Конверт C3 (324 мм x 458 мм) |
30 |
Конверт C4 (229 мм x 324 мм) |
28 |
Конверт C5 (162 мм x 229 мм) |
31 |
Конверт C6 (114 мм x 162 мм) |
32 |
Конверт C65 (114 мм x 229 мм) |
27 |
DL конверта (110 мм x 220 мм) |
36 |
Конверт (110 мм x 230 мм) |
37 |
Envelope Monarch (3-7/8 in. x 7-1/2 in.) |
38 |
Конверт (3-5/8 в. x 6-1/2 in.) |
26 |
Лист размеров E |
7 |
Executive (7-1/2 в. x 10-1/2 in.) |
41 |
Немецкий юридический фанфолд (8-1/2 в. x 13 in.) |
40 |
Немецкий юридический фанфолд (8-1/2 в. x 13 in.) |
39 |
Стандартный фанфолд США (14-7/8 в. x 11 in.) |
14 |
Фолио (8-1/2 в. x 13 in.) |
4 |
Книга (17 в. x 11 in.) |
5 |
Юридический (8-1/2 в. x 14 in.) |
1 |
Письмо (8-1/2 в. x 11 in.) |
2 |
Letter Small (8-1/2 in. x 11 in.) |
18 |
Примечание (8-1/2 в. x 11 in.) |
15 |
Quarto (215 мм x 275 мм) |
6 |
Заявление (5-1/2 в. x 8-1/2 in.) |
3 |
Таблоид (11 в. x 17 in.) |
256 |
Пользовательский |
Атрибут pageOrder — направление печати. Если значение «overThenDown» — то будет печататься слева направо, потом нижняя часть снова слева направо и т.д. Если такого атрибута нет — то печататься будет сначала вся левая сторона сверху-вниз, потом та часть, что справа и т.д.
Атрибут orientation — задает ориентацию листов. «portrait» — портретная (вертикальная) ориентация, «landscape» — альбомная (горизонтальная) ориентация.
Атрибут blackAndWhite — если установлена 1 ил true — лист будет напечатан в черно-белом варианте.
Атрибут draft — если установлена 1 ил true — лист будет напечатан без графики.
Атрибут cellComments — печать комментариев к ячейкам. Используемые значения:
-
AsDisplayed — Распечатать Комментарии Как отображается;
-
AtEnd — Печать в конце;
-
None — Не печатать.
Атрибут errors — Печать обработки ошибок.
-
Blank — Показать ошибки ячейки как пустые;
-
Dash — Ошибки ячейки Dash;
-
Displayed — Отображение ошибок ячейки;
-
NA — Отображает «NA».
Атрибут r:id — идентификатор настроек.
Разбор xl/caclChain.xml
По традиции, начнем с содержимого файла:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<calcChain xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<c r="B4" i="1"/>
</calcChain>
Здесь нам важна строка 3. видим тег c — наша ячейка, у нее есть атрибут r — адрес ячейки. Индексный атрибут i указывает индекс листа, с которым связана ячейка.
Разбор xl/sharedStrings.xml
Обратимся к статье от @Lachrimae:
Представим, что у нас есть таблица, заполненная строковыми данными, и что она большая. При этом крайне маловероятно, что все значения в ней будут уникальны. Некоторые из них нет-нет, да повторятся где-нибудь в разных частях таблицы. Хранить такой массив «как есть» внутри XML-разметки листа нерационально с точки зрения ресурсов ПК. Поэтому все строковые значения вынесены в отдельный файл, /xl/sharedStrings.xml. Часть его, которая нас интересует, выглядит, допустим, так:
<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="4" uniqueCount="3">
<si><t>Вася</t></si>
<si><t>Петя</t></si>
<si><t>Саша</t></si>
</sst>
Обратите внимание на атрибуты тега <sst /> «count» и «uniqueCount»: их значения различаются. Дело в том, что в книге одну из строк я использовал дважды. При этом атрибуты не обязательны, то есть если их убрать, то Excel ошибки не выдаст, но при сохранении файла нарисует опять.
Здесь же можно сказать, что здесь, внутри тега <si /> можно играть с настройками шрифта. Для этого используется доработанная напильником система пробегов, применяемая в MS Word (до него мы еще доберемся). Выглядит это примерно так:
<si>
<r>
<t xml:space="preserve">Мама </t>
</r>
<r>
<rPr>
<b/>
</rPr>
<t>мыла</t>
</r>
<r>
<rPr>
<sz val="18"/>
</rPr>
<t xml:space="preserve"> раму</t>
</r>
</si>
Обратите внимание: в корневой тег <si/> в предыдущем примере был встроен непосредственно тег <t/>, содержавший текст. Здесь же он обернут тегом <r/>, то есть Run; по-русски его принято назвать «пробег». Пробег — это, если в двух словах — кусок текста, имеющий одинаковые стилевые настройки.
В этом примере строковое значение содержит 3 пробега. Чтобы было удобнее их рассматривать, я, пожалуй, вынесу их отдельными сорсами.
Первый:
<r>
<t xml:space="preserve">Мама </t>
</r>
Этот пробег не содержит секции <rPr/>, поэтому использует стилевые настройки ячейки, в которой находится. В нем интересно другое: атрибут xml:space=«preserve». Дело в том, что по умолчанию что Excel, что Word обрезают концевые пробелы со всех пробегов. Может показаться, что в этом случае в месте стыка пробегов всегда должна получаться примерно такая картина: «ВасяПетя». Но по опыту общения с тем же MS Word мы знаем, что это не так. Из-за чего? Вот как раз из-за xml:space=«preserve».
Второй:
<r>
<rPr>
<b/>
</rPr>
<t>мыла</t>
</r>
Здесь нет атрибута xml:space=«preserve». Нам без разницы, что Excel сделает с концевыми пробелами, которых нет. Зато есть блок <rPr/>. В принципе, в него можно поместить любые настройки шрифта, которые только есть в Excel. Я же сделал всего один, чтобы не раздувать объем примера.
Третий:
<r>
<rPr>
<sz val="18"/>
</rPr>
<t xml:space="preserve"> раму</t>
</r>
А здесь у нас есть и блок настроек шрифта, и сохранение концевых пробелов.
Ну и еще коротенькая ремарка. Если есть необходимость сделать многострочную запись в ячейке, то здесь в строке просто будет обычный символ переноса, chr(10). Сам атрибут многострочности ячейки расположен в файле разметки листа. В однострочной ячейке символ переноса будет проигнорирован. Excel просто сделает вид, что его нет.
Добавлю: каждый тег si имеет порядковый номер, начиная с 0. Он нигде не записывается. Этот номер и записывается в файле xl/worksheets/sheet1.xml в теге sheetData, который мы рассматривали ранее.
Разбор xl/styles.xml
Снова обратимся к статье от @Lachrimae. Буду добавлять от себя дополнительную информацию.
Как нетрудно догадаться, здесь хранится информация об оформлении ячеек. Причем в угоду оптимизации, хранится она в достаточно интересном виде. Файл состоит из следующих секций:
1. Шрифты:
<fonts count="2" x14ac:knownFonts="1">
<font>
<sz val="11"/>
<color theme="1"/>
<name val="Calibri"/>
<family val="2"/>
<scheme val="minor"/>
</font>
<font>
<b/>
<sz val="11"/>
<color theme="1"/>
<name val="Calibri"/>
<family val="2"/>
<charset val="204"/>
<scheme val="minor"/>
</font>
</fonts>
Как можно понять, здесь перечислены только уникальные стили оформления текста, использованные в книге. Каждый тег — один стиль. Вложенные теги — особенности стиля, такие как полужирное написание (тег <b/>), кегль (<sz/>) и другие.
На месте тега <b/> можно написать:
-
<i/> — курсив;
-
<u/> — подчеркнутый,
либо <u val=»double»/> — двойное подчеркивание; -
<strike/> — зачеркнутый;
-
<vertAlign val=»superscript»/> — надстрочный текст,
либо <vertAlign val=»subscript»/> — подстрочный текст;
либо сочетание нескольких тегов.
Если хотите установить цвет шрифта какой-нибудь свой (возьмем #123456), то в теге color вместо атрибута theme пишем rgb и вставляем hex-код цвета, должно получиться вот так:
<color rgb="123456"/>
2. Заливка ячеек:
<fills count="2">
<fill>
<patternFill patternType="none"/>
</fill>
<fill>
<patternFill patternType="gray125"/>
</fill>
</fills>
Как видно, первый вариант — без заливки вообще, а второй — сплошная заливка библиотечного цвета «gray125».
Здесь тот же принцип с установкой своего цвета, только немного по-другому записывается:
<fill>
<patternFill patternType="solid">
<fgColor rgb="123456"/>
<bgColor indexed="64"/>
</patternFill>
</fill>
Тег fgcolor — отвечает за цвет переднего плана, а bgcolor — за цвет заднего плана (indexed=»64″ — черный цвет).
У тега patternFill атрибут patternType может иметь следующие значения:
-
none — Нет заливки;
-
solid — Сплошная заливка; (пример выше)
-
darkGray — Серый 75%;
Пример
<fill> <patternFill patternType="darkGray"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки Здесь мы можем наблюдать, что цвета расположены в сетку
-
mediumGray — Серый 50%;
Пример
<fill> <patternFill patternType="mediumGray"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки Здесь сетка уже поменьше и цвет из тега fgcolor уже меньше прорисовывается.
-
lightGray — Серый 25%;
Пример
<fill> <patternFill patternType="lightGray"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки Здесь сетка еще меньше и цвет из тега fgcolor еще меньше прорисовывается.
-
gray125 — Серый 12.5%;
Пример
<fill> <patternFill patternType="gray125"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки Посыл, думаю, понятен
-
gray0625 — Серый 0.025%
Пример
<fill> <patternFill patternType="gray0625"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки -
darkHorizontal — Полосатый цвет с горизонтальными линиями;
Пример
<fill> <patternFill patternType="darkHorizontal"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки -
darkVertical — Полосатый цвет с вертикальными линиями;
Пример
<fill> <patternFill patternType="darkVertical"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки -
darkDown — Полосатый цвет с диагональными линиями сверху-вниз;
Пример
<fill> <patternFill patternType="darkDown"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки -
darkUp — Полосатый цвет с диагональными линиями снизу-вверх;
Пример
<fill> <patternFill patternType="darkUp"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки -
darkGrid — Диагональный клетчатый;
Пример
<fill> <patternFill patternType="darkGrid"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки В этом варианте сетки четко видно, клетки цветов одинаковые и их поровну. Как шахматная доска
-
darkTrellis — Толстый диагональный клетчатый;
Пример
<fill> <patternFill patternType="darkTrellis"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки -
lightHorizontal — Полосатый цвет с горизонтальными тонкими линиями;
Пример
<fill> <patternFill patternType="lightHorizontal"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки -
lightVertical — Полосатый цвет с вертикальными тонкими линиями;
Пример
<fill> <patternFill patternType="lightVertical"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки -
lightDown — Полосатый цвет с диагональными тонкими линиями сверху-вниз;
Пример
<fill> <patternFill patternType="lightDown"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки -
lightUp — Полосатый цвет с диагональными тонкими линиями снизу-вверх;
Пример
<fill> <patternFill patternType="lightUp"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки -
lightGrid — Тонкий горизонтальный клетчатый;
Пример
<fill> <patternFill patternType="lightGrid"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки -
lightTrellis — Тонкий диагональный клетчатый;
Пример
<fill> <patternFill patternType="lightTrellis"> <fgColor rgb="FF0000"/> <bgColor rgb="00FF00"/> </patternFill> </fill>
Цвет выглядит вот так:
Цвет ячейки
Можно еще заливку сделать градиентом:
-
Горизонтальный, вертикальный, диагональный:
Примеры
2 цвета:
<fill> <gradientFill degree="90"> <stop position="0"> <color rgb="0000FF"/> </stop> <stop position="1"> <color rgb="FFFFFF"/> </stop> </gradientFill> </fill>
градиент 2 цвета Атрибут degree — угол поворота, изменяя который можно менять направление градиента.
3 цвета:
<fill> <gradientFill degree="90"> <stop position="0"> <color rgb="0000FF"/> </stop> <stop position="0.5"> <color rgb="FFFFFF"/> </stop> <stop position="1"> <color rgb="FF0000"/> </stop> </gradientFill> </fill>
Градиент 3 цвета
-
От угла:
Примеры
От левого верхнего угла
<fill> <gradientFill type="path"> <stop position="0"> <color rgb="0000FF"/> </stop> <stop position="1"> <color rgb="FFFFFF"/> </stop> </gradientFill> </fill>
Градиент от угла От правого верхнего угла — в тег gradientFill добавить атрибуты left=»1″ right=»1″, чтобы получилось:
<gradientFill left="1" right="1" type="path">
От левого нижнего угла — в тег gradientFill добавить атрибуты bottom=»1″ top=»1″;
От правого нижнего угла — в тег gradientFill добавить атрибуты bottom=»1″ top=»1″ left=»1″ right=»1″;
-
От центра:
<fill> <gradientFill bottom="0.5" top="0.5" right="0.5" left="0.5" type="path"> <stop position="0"> <color rgb="0000FF"/> </stop> <stop position="1"> <color rgb="FFFFFF"/> </stop> </gradientFill> </fill>
Градиент от центра
3. Границы:
<borders count="2">
<border>
<left/>
<right/>
<top/>
<bottom/>
<diagonal/>
</border>
<border>
<left style="thin">
<color indexed="64"/>
</left>
<right style="thin">
<color indexed="64"/>
</right>
<top style="thin">
<color indexed="64"/>
</top>
<bottom style="thin">
<color indexed="64"/>
</bottom>
<diagonal/>
</border>
</borders>
Как видно, одно наименование здесь состоит из пяти элементов, 4 основных границы и диагональная, то есть все то, что можно настроить через GUI самого Excel.
Атрибут style означает стиль границы и может иметь следующие значения:
-
thin – тонка сплошная;
-
hair – мелкая пунктирная;
-
dotted – точечная пунктирная;
-
dashed – пунктирная линия;
-
dashDot – пунктир линия точка;
-
dashDotDot – пунктир линия точка точка;
-
double – двойная сплошная;
-
medium – сплошная средней толщины;
-
mediumDashed – пунктирная линия средней толщины;
-
mediumDashDot – пунктир линия точка средней толщины;
-
mediumDashDotDot – пунктир линия точка точка средней толщины;
-
slantDashDot – косая пунктир линия точка средней толщины;
-
thick – сплошная большой толщины.
Для установки цвета границы используйте уже известную нам запись:
<color rgb="123FFF"/>
Чтобы установить диагональную границу, нужно в тег diagonal записать атрибуты:
-
diagonalDown=»1″ — для границы сверху-вниз;
-
diagonalUp=»1″ — для границы снизу вверх.
Должно получиться:
<diagonal diagonalDown="1"/>
<diagonal diagonalUp="1"/>
<diagonal diagonalDown="1" diagonalUp="1"/>
Ну и не забудьте внутри тега diagonal записать цвет для границы — тег color.
4. Стили ячеек:
<cellXfs count="4">
<xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/>
<xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyFont="1" applyAlignment="1">
<alignment wrapText="1"/>
</xf>
<xf numFmtId="0" fontId="0" fillId="0" borderId="1" xfId="0" applyBorder="1" applyAlignment="1">
<alignment horizontal="center" vertical="center"/>
</xf>
<xf numFmtId="0" fontId="1" fillId="2" borderId="1" xfId="0" applyFont="1" applyFill="1" applyBorder="1" applyAlignment="1">
<alignment horizontal="center" vertical="center"/>
</xf>
</cellXfs>
А вот здесь надо объяснить подробнее. Когда в файле листа мы будем указывать стиль ячейки, мы будем ссылаться как раз на эту секцию. Каждый тег <xf />, представляющий собой один стиль, является собранием ссылок на предыдущие секции, то есть он сам по себе не содержит объявления шрифта, границ и заливки. Рассмотрим интересные атрибуты ближе:
— numFmtId — указание формата текста в ячейке (дата, валюта, число, текст, …). Полный перечень этих типов есть здесь
— fontId, fillId, borderId — ссылка на шрифт/заливку/границы (см. секцию 1, 2 и 3 соответственно). Нумерация начинается с 0.
— applyFont, applyFill, applyBorder — указание на то, что при оформлении этой ячейки вообще используется кастомный шрифт/заливка/границы. По умолчанию 0, так что можно не указывать вообще, как видно на примере в элементе #0.
— applyAlignment — указание на то, что выравнивание текста в ячейке будет отличаться от стандартного. По умолчанию 0, но если указано «1», то в родительский тег <xf /> встраивается тег <alignment />, как видно на примере начиная с #1.
В теге alignment могут быть атрибуты:
-
horizontal — выравнивание текста в горизонтальной плоскости. Может иметь значения: left – по левому краю, center – по центру, right – по правому краю, justify – по ширине, fill — заполнение, distributed – распределенное
-
vertical — выравнивание текста по вертикали. Значения: top – по верхнему краю, center – по центру, bottom – по нижнему краю, justify – по высоте, distributed – распределенное
-
textRotation — угол поворота текста. Если установить 255 — то текст будет вертикальный.
-
wrapText=»1″ — перенос текста
Разбор xl/workbook.xml
Из статьи от @Lachrimae:
Основное его назначение — манифест, то есть перечень листов, из которых наша книга Excel, собственно, и состоит.
Выглядит этот перечень, к примеру, так:
<sheets>
<sheet name="Лист1" sheetId="1" r:id="rId1"/>
<sheet name="Лист2" sheetId="2" r:id="rId2"/>
<sheet name="Лист3" sheetId="3" r:id="rId3"/>
<sheet name="Лист4" sheetId="4" r:id="rId4"/>
</sheets>
Это значит, что в книге 4 листа, и их имена указаны в атрибутах name. Каждому тегу должен соответствовать файл в папке %file%/xl/worksheets. Excel сам знает, как должны называться эти файлы и при попытке их переименовать, сочтет всю книгу поврежденной.
Разбор [Content_Types].xml
Содержимое файла может быть следующим:
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
<Default ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings" Extension="bin"/>
<Default ContentType="application/vnd.openxmlformats-package.relationships+xml" Extension="rels"/>
<Default ContentType="application/xml" Extension="xml"/>
<Override ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" PartName="/xl/workbook.xml"/>
<Override ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml" PartName="/xl/worksheets/sheet1.xml"/>
<Override ContentType="application/vnd.openxmlformats-officedocument.theme+xml" PartName="/xl/theme/theme1.xml"/>
<Override ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml" PartName="/xl/styles.xml"/>
<Override ContentType="application/vnd.openxmlformats-package.core-properties+xml" PartName="/docProps/core.xml"/>
<Override ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml" PartName="/docProps/app.xml"/>
<Override ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml" PartName="/xl/sharedStrings.xml"/>
<Override ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml" PartName="/xl/calcChain.xml"/>
</Types>
В этом файле прописываются определения типов всех файлов и их расположения.
Как видно, здесь записываются все файлы листов, стилей, строковых значений, формул и т.д.
Если в документе вы не используете, к примеру, формул, то строки 13 не будет записано.
Завершение
Я разобрал основные моменты содержания файла excel. Если вам будет интересно узнать про диаграммы и другие возможности excel — пишите в комментариях, я постараюсь сделать дополнение к этой статье из ваших просьб.
Каждому человеку свойственно ошибаться. Если я чего-любо не раскрыл или раскрыл не полностью, либо с ошибками — поправьте меня.
Если вам также будет интересно — напишу статью, как манипулировать с файлами excel посредством PHP/Java/Ruby.
Спасибо за внимание и уделенное время этой статье.
В Microsoft Excel можно легко импортировать данные XML, созданные в других базах данных и приложениях, сопоставить XML-элементы из схемы XML с ячейками листа и экспортировать обработанные данные XML для взаимодействия с другими базами данных и приложениями. Эти функциональные возможности позволяют использовать Office Excel как генератор файлов данных XML со знакомым пользовательским интерфейсом.
В этой статье
-
Причины использования XML в Excel
-
Данные XML и файлы схемы
-
Ключевые сценарии XML и Excel
-
-
Основной процесс использования данных XML в Excel
-
Работа с картами XML
-
Использование области задач источника XML
-
Типы элементов и их значки
-
Работа с ячейками с точечным сопоставлением
-
Работа с повторяющимися ячейками в XML-таблицах
-
Обеспечение безопасности карт XML
-
Импорт данных XML
-
Работа с полученной схемой
-
Экспорт данных XML
-
Использование файла Excel формата Office Open XML с поддержкой макросов
-
Причины использования XML в Excel
XML является технологией, разработанной для управления структурированными данными и отображения этих данных в виде удобочитаемого текстового файла. Язык XML соответствует отраслевым стандартам и может быть обработан многими базами данных и приложениями. С помощью XML многие разработчики могут создавать собственные настроенные теги, структуры данных и схемы. В целом XML существенно облегчает определение, передачу, проверку и интерпретацию данных в различных базах данных, приложениях и организациях.
Данные XML и файлы схемы
Excel работает преимущественно с двумя типами XML-файлов:
-
файлами данных XML (XML), которые содержат настраиваемые теги и структурированные данные;
-
Файлы схемы (XSD), которые содержат теги схемы, в которых действуют правила, например тип данных и проверка.
В стандарте XML также определяются файлы преобразования XSLT, которые используются для применения стилей и преобразования данных XML в другие форматы. Вы можете использовать эти преобразования перед импортом XML-файлов в Excel и после экспорта XML-файлов из Excel. Если XSLT-файлы связаны с XML-файлами данных, импортированными в Excel, вы можете применить форматирование перед добавлением данных на лист, только открыв XML-файл в Excel с помощью команды Открыть. Прежде чем нажать кнопку Открыть, выберите тип файлов XML (*.XML), чтобы просмотреть XML-файлы в папке.
Ключевые сценарии XML и Excel
С помощью XML и Excel вы можете управлять книгами и данными такими способами, которые ранее были невозможны или представляли трудности. Используя карты XML, вы можете легко добавлять, идентифицировать и извлекать определенные фрагменты бизнес-данных из документов Excel. Например, счет-фактура, содержащий имя и адрес покупателя, или отчет с финансовыми показателями за предыдущий квартал больше не будут статичными отчетами. Эти сведения можно с легкостью импортировать из баз данных и приложений, изменять, а также экспортировать в те или иные базы данных и приложения.
Вот ключевые сценарии, для работы с которыми предназначены возможности XML:
-
расширение функциональных возможностей существующих шаблонов Excel путем сопоставления XML-элементов с существующими ячейками. Это облегчает удаление и добавление данных XML в шаблонах, не изменяя сами шаблоны;
-
использование данных XML в качестве входных данных для существующих моделей вычислений путем сопоставления XML-элементов с существующими листами;
-
импорт файлов данных XML в новую книгу;
-
импорт данных XML из веб-службы на лист Excel;
-
экспорт данных в сопоставленных ячейках в файлы данных XML независимо от других данных в книге.
К началу страницы
Основной процесс использования данных XML в Excel
На следующей схеме показано, как взаимодействуют различные файлы и операции при использовании XML в Excel. Фактически этот процесс состоит из пяти этапов.
добавление файла схемы XML (XSD) в книгу
сопоставление элементов схемы XML с отдельными ячейками или XML-таблицами
импорт файла данных XML (.xml) и привязку XML-элементов к ячейкам
ввода данных, перемещения соедини ячеек и Excel функциональных возможностей, сохранения структуры и определений XML
экспорт измененных данных из картографовых ячеек в файл данных XML
Работа с картами XML
Вы можете создать или открыть книгу в Excel, прикрепить файл схемы XML (XSD) к книге, а затем с помощью области задач Источник XML соедиировать XML-элементы схемы с отдельными ячейками или таблицами. Выполнив такое сопоставление, вы можете импортировать и экспортировать данные XML в ячейки таблицы и из них соответственно.
При добавлении файла схемы XML (XSD) в книгу создается карта XML. Как правило, карты XML используются для создания сопоставленных ячеек и управления взаимосвязью между такими ячейками и отдельными элементами схемы XML. Кроме того, эти карты используются для привязки содержимого сопоставленных ячеек к элементам схемы при импорте или экспорте файлов данных XML (XML).
Вы можете создавать сопоставленные ячейки двух видов: ячейки с точечным сопоставлением и повторяющиеся ячейки (отображаемые в виде XML-таблиц). Для более гибкой разработки книги вы можете перемещать сопоставленные ячейки в любое место на листе и в любой последовательности, даже отличающейся от последовательности, заданной в схеме XML. Вы также можете выбрать, какие элементы следует сопоставлять.
Важно знать такие правила использования карт XML:
-
книга может содержать одну или несколько карт XML;
-
одновременно можно сопоставить только один элемент с одним расположением в книге;
-
каждая карта XML независима от других, даже если несколько карт XML в одной книге относятся к одной и той же схеме;
-
карта XML может содержать только один корневой элемент. При добавлении схемы, определяющей более одного корневого элемента, появится запрос на выбор корневого элемента, который будет использоваться в новой карте XML.
Использование области задач источника XML
Используйте область задач Источник XML для управления картами XML. Чтобы ее открыть, на вкладке Разработчик в группе XML нажмите Источник. На следующей схеме показаны основные функциональные возможности этой области задач.
1. Отображение карт XML, добавленных в книгу.
2. Отображение иерархического списка XML-элементов в текущей карте XML.
3. Установка параметров при работе с областью задач Источник XML и данными XML (например, параметров, отвечающих за предварительный просмотр данных и управление заголовками).
4. Открытие диалогового окна Карты XML, которое служит для добавления, удаления или переименования карт XML.
5. Проверка возможности экспорта данных XML через текущую карту XML.
К началу страницы
Типы элементов и их значки
В следующей таблице приведены все типы XML-элементов, с которыми может работать Excel, и значки, используемые для представления каждого типа элементов.
Тип элемента |
Значок |
---|---|
Родительский элемент |
|
Обязательный родительский элемент |
|
Повторяющийся родительский элемент |
|
Обязательный повторяющийся родительский элемент |
|
Дочерний элемент |
|
Обязательный дочерний элемент |
|
Повторяющийся дочерний элемент |
|
Обязательный повторяющийся дочерний элемент |
|
Атрибут |
|
Обязательный атрибут |
|
Простое содержимое в сложной структуре |
|
Обязательное простое содержимое в сложной структуре |
|
К началу страницы
Работа с ячейками с точечным сопоставлением
Ячейка с точечным сопоставлением — это ячейка, сопоставленная с неповторяющимся XML-элементом. Такую ячейку вы можете создать, переместив неповторяющийся XML-элемент из области задач Источник XML в отдельную ячейку листа.
Название перемещаемого на лист неповторяющегося XML-элемента вы можете назначить заголовком сверху или слева от ячейки с точечным сопоставлением при помощи смарт-тега. В качестве заголовка также можно использовать текущее значение ячейки.
Кроме того, в ячейке с точечным сопоставлением вы можете использовать формулу, если ячейка сопоставлена с XML-элементом, который имеет тип данных определения схемы XML (XSD), интерпретируемый Excel как число, дата или время.
К началу страницы
Работа с повторяющимися ячейками в XML-таблицах
По внешнему виду и функциональным возможностям XML-таблицы подобны таблицам Excel. XML-таблицы являются таблицами Excel, сопоставленными с одним или несколькими повторяющимися XML-элементами. Каждый столбец XML-таблицы соответствует XML-элементу.
XML-таблица создается в следующих случаях:
-
при использовании команды Импорт (в группе XML на вкладке Разработчик) для импорта файла данных XML;
-
Используйте команду Открыть из Excel, чтобы открыть файл данных XML, а затем выберите В качестве XML-таблицы в диалоговом окне Открыть XML.
-
при использовании команды Из импорта данных XML (кнопка команды Из других источников в группе Внешние данные на вкладке Данные) для импорта файла данных XML и дальнейшего выбора параметров XML-таблица на существующем листе или Новый лист в диалоговом окне Импорт данных;
-
при перетаскивании на лист одного или нескольких повторяющихся элементов из области задач Источник XML.
При создании XML-таблицы названия XML-элементов автоматически используются в качестве названий столбцов. Вы можете изменить эти названия. Но при экспорте данных из сопоставленных ячеек автоматически будут использоваться исходные названия XML-элементов.
При работе с XML-таблицами полезны два параметра, доступные с помощью кнопки Параметры в области задач Источник XML.
-
Автоматически объединять элементы при сопоставлении.
Если установлен соответствующий флажок, в Excel создается одна XML-таблица из нескольких полей, перенесенных на лист. Этот параметр работает, пока поля перемещаются в одну строку в виде последовательного ряда. Если флажок снят, каждый элемент отображается в виде отдельной XML-таблицы. -
Данные с заголовками.
Если установлен соответствующий флажок, существующие данные заголовков используются в качестве названий столбцов для повторяющихся элементов, сопоставляемых на листе. Если флажок снят, названия XML-элементов используются в качестве названий столбцов.
С помощью XML-таблиц вы можете импортировать, экспортировать, сортировать, фильтровать и печатать данные, основанные на источнике данных XML. Но существуют некоторые ограничения относительно расположение XML-таблиц на листе.
-
XML-таблицы основаны на строках, то есть вырастают из строки с заглавной строкой вниз. Добавить новые записи над существующими строками невозможно.
-
Невозможно транспонировать XML-таблицу так, чтобы новые записи добавлялись справа.
Вы можете использовать формулы в столбцах, сопоставленных с XML-элементами, которые имеют тип данных определения схемы XML (XSD), интерпретируемый Excel как число, дата или время. В XML-таблице, как и в таблице Excel, формулы копируются вниз по столбцу по мере добавления новых строк.
Обеспечение безопасности карт XML
Карта XML и содержащиеся в ней сведения об источнике данных сохраняются в книге Excel, а не на определенном листе. Злоумышленник может просмотреть эти данные карты с помощью макроса VBA (Microsoft Visual Basic для приложений). Более того, если книга сохранена в файле Excel формата Open XML с поддержкой макросов, данные карты можно просмотреть с помощью Блокнота или другого текстового редактора.
Если вы хотите по-прежнему использовать сведения о карте, но при этом скрыть конфиденциальные данные, вы можете удалить из книги определение источника данных схемы XML, не прекращая экспорт данных XML. Для этого снимите флажок Сохранять определение источника данных в книге в диалоговом окне Свойства карты XML, которое можно открыть, выбрав Свойства карты в группе XML на вкладке Разработчик.
Если удалить лист до удаления карты, сведения карты об источниках данных и, возможно, другие конфиденциальные сведения останутся в книге. При обновлении книги для удаления конфиденциальных сведений обязательно удалите карту XML до удаления листа, чтобы окончательно удалить данные карты из книги.
К началу страницы
Импорт данных XML
Вы можете импортировать данные XML в имеющуюся в книге карту XML. При этом данные из файла привязываются к карте XML, хранящейся в этой книге. Это означает, что каждый элемент данных в файле данных XML имеет соответствующий элемент в схеме XML, который был сопоставлен из файла схемы XML или из полученной схемы. Каждая карта XML может содержать только одну привязку данных XML, которая при этом связана со всеми сопоставлениями, созданными на основе единой карты XML.
В диалоговом окне Свойства карты XML (на вкладке Разработчик в группе XML выберите пункт Свойства карты) расположены три параметра, используемые по умолчанию, с помощью которых вы можете управлять привязкой данных XML:
-
<c0>Проверять данные на соответствие схеме при импорте и экспорте</c0>. Указывает, следует ли Excel проверять данные по карте XML при импорте. Установите флажок, если нужно, чтобы импортируемые данные XML соответствовали схеме XML.
-
<c0>Заменять существующие данные новыми</c0>. Указывает, следует ли заменять данные при импорте. Установите флажок, если необходимо заменять текущие данные новыми (например, если в новом файле данных XML содержатся обновленные данные).
-
<c0>Добавлять новые данные в существующие XML-таблицы</c0>. Указывает, следует ли добавлять содержимое источника данных к существующим данным на листе. Используйте этот параметр, если, например, вам необходимо объединить данные из нескольких похожих файлов данных XML в одну XML-таблицу или вы не хотите, чтобы содержимое ячейки с функцией было перезаписано.
При импорте данных XML вам может понадобиться заменить некоторые сопоставленные ячейки. Например, если сопоставленные ячейки содержат формулы и эти формулы не следует заменять при импорте XML-файла. Эту проблему можно решить двумя способами:
-
перед импортом данных XML отмените сопоставление элементов, которые не следует заменять. По завершении импорта данных XML вы можете повторно сопоставить XML-элементы ячейкам с формулами, чтобы экспортировать в файл данных XML результаты, полученные после применения формул;
-
создайте две карты XML на основе одной схемы XML. Используйте одну карту XML для импорта данных XML. В этой «карте импорта» не сопоставляйте элементы с ячейками, содержащим формулы или другие данные, которые не следует заменять. Другую карту XML используйте для экспорта данных. В этой «карте экспорта» сопоставьте с XML-файлом элементы, которые необходимо экспортировать.
Примечание: Возможность импорта данных XML из веб-службы с помощью файла подключения службы извлечения данных (UXDC) для подключения к источнику данных больше не поддерживается в пользовательском интерфейсе более новых версий, чем Excel 2003. Если вы откроете книгу, созданную в Excel 2003, вы сможете только просмотреть их, но не сможете изменить или обновить исходные данные.
Работа с полученной схемой
При импорте данных XML без добавления соответствующей схемы XML для создания карты XML Excel пытается получить схему, основываясь на тегах, определенных в файле данных XML. Полученная схема хранится в книге и позволяет работать с данными XML, даже если файл схемы XML не связан с книгой.
При работе с импортированными данными XML, которые имеют полученную схему, вы можете настроить область задач Источник XML. Выберите параметр Предварительный просмотр данных в области задач на кнопке Параметры, чтобы отобразить первую строку данных в качестве образца данных в списке элементов, если вы импортировали данные XML, связанные с картой XML в текущем сеансе Excel.
Полученную схему Excel невозможно экспортировать как отдельный файл данных схемы XML (XSD). Несмотря на наличие редакторов схем XML и других методов создания файлов схем XML, они могут оказаться недоступными или неудобными в работе. Вместо них вы можете воспользоваться надстройкой Excel 2003 XML Tools 1.1, с помощью которой можно создавать файлы схемы на основе карты XML. Дополнительные сведения см. в Excel XML Tools версии 1.1.
Экспорт данных XML
Экспорт данных XML осуществляется путем экспорта содержимого сопоставленных ячеек листа. При экспорте данных в Excel применяются такие правила для определения данных и способов их сохранения:
-
пустые элементы не создаются при наличии пустых ячеек для дополнительного элемента, но они создаются при наличии пустых ячеек для обязательного элемента;
-
запись данных производится в кодировке UTF-8;
-
все пространства имен определяются в корневом XML-элементе;
-
Excel перезаписывать существующие префиксы пространства имен. По умолчанию области имен назначен префикс ns0. Последовательные пространства имен обозначаются ns1, ns2 для ns<>, где <count> — количество пространства имен, записанное в XML-файл.
-
узлы комментариев не сохраняются.
Вы можете отобразить диалоговое окно Свойства карты XML (нажмите кнопку Свойства карты в группе XML на вкладке Разработчик).) а затем используйте параметр Проверить данные на схеме для импорта и экспорта (активны по умолчанию), чтобы указать, Excel проверяет данные на карте XML при экспорте. Выберите этот параметр, если вы хотите, чтобы экспортируемая XML-информация соответствовала схеме XML.
Использование файла Excel формата Office Open XML с поддержкой макросов
Книгу Excel можно сохранять в различных форматах файла, включая файлы Excel формата Office Open XML (XLSM) с поддержкой макросов. Excel содержит схему XML, определяющую содержимое книги Excel, в том числе теги XML, в которых хранятся все сведения книги (например, данные и свойства), а также всю структуру книги. Файл Excel формата Office XML с поддержкой макросов может применяться в пользовательских приложениях. Например, разработчики могут создать приложение, которое выполняет поиск данных в нескольких книгах, сохраненных в этом формате, и создает систему отчетов на основании полученных данных.
К началу страницы
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Импорт данных XML
Сопоставление XML-элементов с ячейками карты XML
Экспорт данных XML
Переописывание данных XML
Начиная с версии 2007 в Excel используется XML-формат, на основе которого создаются рабочие книги, шаблоны и надстройки. Фактически эти файлы представляют собой ZIP-архивы. При необходимости они могут быть разархивированы и просмотрены.[1] В версиях, предшествующих Excel 2007, применялся двоичный файловый формат. И, хотя спецификации этого формата известны, работать с двоичными файлами совсем непросто. С другой стороны, файловый XML-формат относится к категории так называемых открытых форматов. Подобные файлы могут создаваться и обрабатываться с помощью любых программ, не относящихся к Office 2010.
В качестве примера используется файл с поддержкой макросов Excel (XLSM). Он состоит из одного рабочего листа, одного листа диаграммы и простого макроса на языке VBA. Рабочий лист включает таблицу, кнопку (из группы элементов управления Формы), рисунок Smart Art, а также фотографию цветка (рис. 1).
Рис. 1. Пример листа рабочей книги
Скачать заметку в формате Word или pdf, примеры в формате Excel
Структура Excel-файлов
Для просмотра «внутренностей» файла Excel откройте Проводник Windows и добавьте расширение ZIP к файлу. После этого файл sample.xlsm будет переименован в sample.xlsm.zip. Затем можно открыть этот файл с помощью встроенного в Windows архиватора (рис. 2). Если вы установите архиватор 7-zip, то сможете открывать файлы Excel непосредственно, не переименовывая их (рис. 3).
Рис. 2. Структура каталогов файла рабочей книги при просмотре во встроенном архиваторе Windows; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке
Рис. 3. Непосредственное открытие файла Excel, как архива в 7-zip
Первое, что бросается в глаза при просмотре файла (см. рис. 2), — это наличие структуры каталогов. Почти все используемые файлы являются текстовыми XML-файлами. Их можно просматривать в окне текстового редактора, XML-редактора, веб-браузера либо даже в окне Excel. На рис. 4 показано содержимое такого файла, просматриваемого в окне браузера Microsoft Edge. Файлы формата, отличного от XML, включают графические файлы и VBA-проекты (хранятся в двоичном формате).
Рис. 4. Просмотр XML-файла в окне веб-браузера
Рассматриваемый XML-файл (см. рис. 2) включает три корневые папки; некоторые из них включают подпапки. Обратите внимание, что многие папки включают папку _rels. Здесь находятся XML-файлы, которые определяют связи с другими компонентами пакета.
Папки, входящие в состав файла рабочей книги sample.xlsm (см. рис. 2).
- Здесь можно найти сведения о связях в пакете.
- XML-файлы, которые описывают свойства файла и настройки приложения.
- Эта папка является «сердцем» файла. Ее имя изменяется в зависимости от типа документа Office (xl, ppt, word и т.д.). Здесь находится несколько XML-файлов, содержащих настройки для рабочей книги. Если в состав рабочей книги включен VBA-код, он будет находиться в двоичном файле с расширением BIN. Эта папка включает несколько подпапок (количество подпапок изменяется в зависимости от выбранной рабочей книги):
- Здесь находится XML-файл для каждой диаграммы, включающий описание ее настроек.
- Здесь содержится XML-файл, включающий данные для каждого листа диаграммы в рабочей книге.
- Здесь находятся XML-файлы, в которых содержится описание диаграмм (рисунков SmartArt) в рабочей книге.
- Здесь содержится XML-файл, включающий данные для каждого «рисунка». Здесь под этим термином подразумеваются кнопки, диаграммы и изображения. Любопытно, что иногда такое содержимое является мусорным. Удаляю эту папку, мы удаляем весь мусор. Правда, может пострадать и ценная информация. Подробнее см. Excel «тормозит». Что делать? Дубль 2.
- Здесь содержатся внедренные медиаклипы, например, GIF- и JPG-файлы.
- Включает XML-файл, содержащий данные для каждой таблицы.
- Содержит XML-файл, включающий данные о теме рабочей книги.
- Включает XML-файл для каждого рабочего листа в книге.
Любопытно, что добавление расширения ZIP к файлу Excel, не мешает открытию его в Excel, поскольку работа этой программы не зависит от расширения открываемого файла. Также можно сохранить рабочую книгу с расширением ZIP. Для этого в диалоговом окне Сохранение документа добавьте расширение ZIP и заключите имя файла в двойные кавычки, например, “Пример.xlsx.zip”.
Почему файловый формат столь важен
«Открытые» файловые XML-форматы, появившиеся в Microsoft Office 2007, представляют собой огромный шаг вперед, важный для всего компьютерного сообщества. Самое главное — рабочие книги Excel в этих форматах относительно легко считывать и записывать посредством ряда программ, отличных от Excel. Например, вполне возможно написать такую программу, которая будет изменять тысячи рабочих книг Excel, причем сама программа Excel не потребуется. Подобная программа может вставлять новые рабочие листы в каждый такой файл.
Важно также то, что новые форматы файлов более устойчивы к возможным повреждениям (по сравнению с устаревшими двоичными форматами). Я сохранил файл рабочей книги и удалил один из XML-файлов рабочего листа. При попытке повторного открытия этого файла в Excel отобразилось сообщение, показанное на рис. 5. В нем говорится о том, что файл был поврежден и данные в нем отличаются от данных в файлах с расширением .res. Причем Excel способна «отремонтировать» и открыть файл. При этом удаленный рабочий лист будет помещен на место, хотя и окажется пустым.
Рис. 5. Программа Excel может сама «отремонтировать» поврежденный файл рабочей книги
Кроме того, размер заархивированного XML-файла зачастую меньше размера соответствующего двоичного файла. И еще одно преимущество заключается в том, что структурированная природа файла позволяет извлекать отдельные его элементы (например, графику). Как правило, у пользователя Excel не возникает потребности в просмотре либо изменении XML-компонентов файла рабочей книги. Но если вы являетесь разработчиком, то вам придется создавать код, который изменяет компоненты пользовательского «ленточного» интерфейса Excel. При этом следует хотя бы поверхностно знать структуру XML-файла рабочей книги.
Файл OfficeUI
В файле Excel.officeUI сохраняются результаты изменений, внесенных на панель быстрого доступа и ленту. Этот XML-файл можно найти в следующей папке: C:Users<имя_пользователя>AppDataLocalMicrosoftOffice
Если вы не нашли в этой папке такого файла, это означает, что вы не изменяли в Excel, ни ленту, ни панель быстрого доступа, установленные по умолчанию. Добавьте любую команду на панель быстрого доступа, и файл появится. Причем изменения вносятся в файл незамедлительно, еще до закрытия Excel. Для просмотра файла Excel.officeUI можно воспользоваться редактором XML-кода, веб-браузером или Excel. Выполните следующие действия.
- Создайте копию файла Excel.officeUI.
- Добавьте расширение XML к копии файла, в результате чего название файла примет вид Excel.officeUI.xml.
- Перейдите в Excel, выполните команду Файл –> Открыть.
- Отобразится диалоговое окно, включающее ряд параметров; выберите XML-таблица.
На рис. 6 показан импортированный файл Excel.officeUI.xml. В рассматриваемом примере на панель быстрого доступа добавлено пять команд (строки 3, 8, 9, 12, 13).
Рис. 6. Просмотр файла данных Excel.officeUl.xml в Excel
Один и тот же файл Excel.OfficeUI может применяться несколькими пользователями одновременно. Например, панель быстрого доступа нетрудно снабдить двумя-тремя десятками полезных инструментов, а ленту — несколькими полезными вкладками, включающими ряд пользовательских групп. Если подобная обновленная панель произведет впечатление на ваших коллег, просто передайте им копию файла Excel.OfficeUI и расскажите, куда ее нужно скопировать. Учтите, что в случае копирования переданной вами копии поверх существующего файла Excel.OfficeUI все изменения, ранее внесенные в интерфейс пользователя, будут утеряны.
Не пытайтесь изменить файл Excel.OfficeUI, если вы точно не представляете, для чего он предназначен. Но при этом не бойтесь экспериментировать. Если при запуске Excel появится сообщение об ошибке в файле Excel.ОfficeUI, можете просто удалить его, после чего Excel создаст новый экземпляр этого файла. Но лучше все же хранить копию исходного файла в безопасном месте.
Файл XLB
Программа Excel хранит настройки панелей инструментов и меню в файле с расширением XLB. Даже несмотря на то, что Excel 2010 (и более поздние версии) официально не поддерживает панели инструментов и меню так, как в предыдущих версиях, файл XLB по-прежнему используется. Если вы не можете его найти, значит, программа до сих пор не сохранила ни одно из пользовательских меню или панелей инструментов. В момент закрытия Excel 2010 текущая конфигурация панелей инструментов сохраняется в файле Excel14.xlb (в версии 2013 г. – в файле Excel15.xlb). Этот файл (обычно) находится в следующем каталоге: C:Users<имя_пользователя>AppDataRoamingMicrosoftExcel
Этот двоичный файл содержит сведения о положении и видимости всех пользовательских панелей инструментов и меню, а также изменения, которые были добавлены во встроенные панели инструментов и меню.
Файлы надстроек
Надстройка фактически является рабочей книгой Excel, имеющей некоторые особенности:
- Значение свойства рабочей книги IsAddin равно Истина. Это означает, что надстройка может быть загружена и выгружена с помощью диалогового окна Надстройки.
- Эта рабочая книга скрыта, причем подобное состояние не может изменяться пользователем. Следовательно, надстройка никогда не может быть активной рабочей книгой.
- Если вы работаете с VBA, имейте в виду, что надстройка не входит в коллекцию Workbooks.
Для получения доступа к диалоговому окну Надстройки выберите команду Файл –> Параметры. Выберите раздел Надстройки в левом списке, выберите пункт Надстройки Excel, и щелкните на кнопке Перейти (рис. 7). Альтернативные методы. Если в рабочем окне Excel отображается вкладка Разработчик, перейдите на нее, и кликните Надстройки. И, наконец, если установлена вкладка Разработчик, можно воспользоваться комбинацией клавиш: нажмите и удерживайте клавишу Alt, последовательно нажимайте Р – З (буква) – 2.
Рис. 7. Надстройки в меню Параметры Excel
Настройки Excel в системном реестре
В диалоговом окне Параметры находятся десятки настроек, определенных пользователем. Для хранения этих настроек и обращения к ним во время запуска Excel используется реестр Windows, который еще называют системным реестром. Он представляет собой централизованную иерархическую базу данных, используемую операционной системой и приложениями. Реестр появился еще в Windows 95, в которой заменил прежние INI-файлы с хранящимися в них настройками Windows и приложений.
Для просмотра и редактирования системного реестра можно использовать редактор реестра – regedit.ехе, расположенной в папке C:Windows. Прежде чем начать эксперименты, используйте команду Файл –> Экспорт редактора реестра. Эта команда позволяет сохранить ASCII-версию всего реестра, либо выбранную вами ветвь. Чтобы вернуть реестр в первоначальное состояние, импортируйте ASCII-файл, после чего реестр примет свой исходный вид (команда Файл –> Импорт).
Системный реестр содержит ключи и значения, расположенные в иерархическом порядке. Ключи верхнего уровня: HKEY_CLASSES_ROOT; HKEY_CURRENT_USER; HKEY_LOCAL_MACHINE; HKEY_USERS; HKEY CURRENT CONFIG. Информация, используемая Excel 2013, хранится в следующем разделе реестра: HKEY_CURRENT_USERSoftwareMicrosoftOffice15.0Excel. Настройки реестра обновляются автоматически после закрытия Excel.
Рис. 8. Редактор реестра позволяет просматривать и изменять системный реестр
Учтите, что Excel считывает содержимое реестра Windows один раз — при запуске. Кроме того, Excel единственный раз обновляет настройки реестра — при нормальном завершении. Если Excel завершается аварийно (такое бывает), информация в реестре не обновляется. Если изменить одну из настроек Excel, например, отображение строки формул, это изменение не зафиксируется в системном реестре до тех пор, пока Excel не завершит свою работу без эксцессов.
В таблице (рис. 9) перечислены настройки реестра, имеющие отношение к Excel 2013. Учтите, что некоторых из них вы можете не найти в своей базе данных реестра.
Рис. 9. Информация о конфигурации Excel в системном реестре
Хотя большинство настроек может изменяться в диалоговом окне Параметры, некоторые настройки невозможно изменить таким образом (в этом случае применяется редактор реестра). Например, при выделении диапазона ячеек иногда требуется, чтобы выделенные ячейки окрашивались в черный цвет на белом фоне. Для этого достаточно добавить в системный реестр следующий ключ.
- Откройте редактор реестра и найдите раздел HKEY_CURRENT_USERSoftwareMicrosoftOffice15.0ExcelOptions.
- Щелкните правой кнопкой мыши и выберите пункт Создать –> Параметр QWORD (64 бита).
- Назовите создаваемое значение Options6.
- Щелкните правой кнопкой мыши на ключе Options6 и выберите пункт Изменить.
- В диалоговом окне Изменение параметра QWORD установите переключатель Десятичная и введите значение 16 (рис. 10).
Рис. 10. Ввод значения для параметра системного реестра
После перезагрузки Excel ячейки выделяются черным цветом (следует отметить, что я не заметил изменений). Если вас это не устраивает, удалите запись реестра Options6.
Если появляются проблемы при запуске Excel, причина может быть в повреждении ключей системного реестра. Возможно, придется с помощью редактора реестра удалить следующий раздел реестра: HKEY_CURRENT_USERSoftwareMicrosoftOffice15.0Excel. При следующем запуске Excel удаленные ключи реестра будут созданы вновь. При этом существует риск потери некоторой информации.
[1] По материалам книги Джон Уокенбах. Excel 2010. Профессиональное программирование на VBA. – М: Диалектика, 2013. – С. 112–121.
Excel spreadsheets are great for storing large amounts of data that would be unmanageable elsewhere. But what happens when you need to transfer that data somewhere else? What if you have hundreds or thousands of cells crammed with information? That would be a lot of data to manually re-type, especially if you need it in another format.
Extensible Markup Language, or XML, is an easy-to-use, read, and format document markup language. It can be used to store data in Excel files and help transfer them to other applications. It is a widely used format on the internet and in other applications.
In this guide, you’ll learn a quick and easy way to convert Excel to XML. All you need is an Excel spreadsheet, an XML schema, and a rudimentary understanding of Excel, which you can learn in this Excel training course for beginners.
Step 1: Create your Excel spreadsheet
The first thing you need is an Excel spreadsheet. Below is an example spreadsheet with six columns and seven rows of data. The columns separate the last names, first names, ages, majors (subject), GPAs (Grade Point Average), and school year of each student listed in the spreadsheet.
Step 2: Create your XML schema
After you have your Excel document set up, you need an XML schema. An XML schema is the document that defines an XML file’s structure. You can create an XML schema in Notepad, as it is a text file format. Here is a basic structure:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<student-data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<record>
<TAGNAME>data</TAGNAME>
<TAGNAME2>data</TAGNAME2>
<TAGNAME3>data</TAGNAME3>
</record>
</student-data>
The first line is a standard line. It identifies that it is an XML file, using the encoding UTF-8 and the XML version 1.0.
The second line identifies that the data is about “student-data”. If you simplify this line and the last line, you have:
<student-data>
</student-data>
The first line above opens the element, and the last line, which includes a “/”, ends this element. It is important that you have a closing tag for every opening tag, and that they are in the right order. Everything in between these lines is part of this element. In other words, it is “student-data”. Because this is the first element, it is also called the “root element”.
The “student-data” above includes a “record” element, which has three data elements, TAGNAME, TAGNAME2, and TAGNAME3.
You can change the name of the <TAGNAME> tags into the names of your columns. They do not have to be the exact name of the columns, as long as they’re in the correct order. You only need to fill out a few examples manually, but we can get Excel to do the rest for us later.
Here’s an example XML schema for our Excel spreadsheet:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<student-data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<record>
<LastName>Takahashi</LastName>
<FirstName>Jesse</FirstName>
<Age>19</Age>
<Major>Literature</Major>
<GPA>3.8</GPA>
<Year>Freshman</Year>
</record>
<record>
<LastName>Nguyen</LastName>
<FirstName>May</FirstName>
<Age>23</Age>
<Major>Chemistry</Major>
<GPA>3.5</GPA>
<Year>Senior</Year>
</record>
</student-data>
As you can see, data elements have become <LastName> and <FirstName>, in line with the columns in our data set. You do not need to have the lines indented, but that aids readability.
Also take note of the <student-data> tags that hold the contents of each <record> tag. It should be renamed according to the name of your Excel spreadsheet. In this example, our Excel workbook is called student-data.xlsx, and so our root element tag is called <student-data>.
Don’t forget to name your XML schema with a .xml at the end. In this example, our schema is simply called schema.xml, if you’d like to follow along.
If you want to know more about XML documents, how they work, and what they’re useful for, check out this introduction to XML course. You can also get started with this beginners XML tutorial class.
Step 3: Enable the Developer tab
If the Developer tab is not available, you need to enable it. Click on File – Options, and then the “Customize Ribbon” page. In the column on the right is a list of tabs called Main Tabs with check marks.
Make sure that the check box next to the Developer tab is checked, then click OK. The Developer tab should now be visible in the main Excel window.
If you’re having trouble navigating Excel and its various options, it would be beneficial to take a basic Microsoft Office course for beginners and learn your way around the application.
If you want more advanced skills, then why not take advanced Excel training courses if you need experience with the more complicated elements of Excel.
Step 4: Open the XML Source pane
Now that you’ve brought up the Developer tab and clicked on it, you should see a number of sections called Code, Add-Ins, Controls, and XML.
In the XML section, click on the large button that reads Source. This will bring up the XML Source task pane to the right of the screen, where you’ll have the option to manage XML maps. That’s what we want to do next.
Step 5: Add an XML Map
In the XML Source task pane, click the XML Maps option at the very bottom right. A dialog box will appear. Click Add to add a new XML schema, find your schema.xml file in the browser, and click OK.
Now that your XML file is added, click OK again.
The computer may give you a warning – that’s fine.
Click OK and return to the XML Source task pane.
Step 6: Drag and drop the XML elements into your spreadsheet
Each of your columns should appear as a new element in the record tree created by the XML Source task pane. Drag each element individually into its appropriate column, starting at Row 1.
Converted columns become part of a table and should turn blue. Do this until all of your columns have been mapped to the XML elements.
Step 7: Export your XML data
Once you’ve finished converting each column into an XML element, you can either click on Developer – Export, or go to File – Save As, and change the File Type to “XML Data (*.xml).”
Save your XML file, and Excel will export it to XML. It may warn you that it will result in the loss of non-XML features, such as formatting, pictures, and objects. Again, that’s fine.
You can then open it in Notepad to see your results. Go to File – Open, and change the file type from “Text Files (*.txt)” to “All Files”:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<student-data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<record>
<LastName>Takahashi</LastName>
<FirstName>Jesse</FirstName>
<Age>19</Age>
<Major>Literature</Major>
<GPA>3.8</GPA>
<Year>Freshman</Year>
</record>
<record>
<LastName>Nguyen</LastName>
<FirstName>May</FirstName>
<Age>23</Age>
<Major>Chemistry</Major>
<GPA>3.5</GPA>
<Year>Senior</Year>
</record>
<record>
<LastName>Johnson</LastName>
<FirstName>Ori</FirstName>
<Age>20</Age>
<Major>Business</Major>
<GPA>3.2</GPA>
<Year>Junior</Year>
</record>
<record>
<LastName>Kang</LastName>
<FirstName>Han</FirstName>
<Age>18</Age>
<Major>Biology</Major>
<GPA>3.9</GPA>
<Year>Freshman</Year>
</record>
<record>
<LastName>Jones</LastName>
<FirstName>Raymond</FirstName>
<Age>19</Age>
<Major>Engineering</Major>
<GPA>3.3</GPA>
<Year>Sophomore</Year>
</record>
<record>
<LastName>Akhtar</LastName>
<FirstName>Ali</FirstName>
<Age>19</Age>
<Major>Literature</Major>
<GPA>4.0</GPA>
<Year>Freshman</Year>
</record>
</student-data>
Excel was able to format all of this information automatically, so you didn’t have to.
This trick can come in handy with large data sets of over thousands of cells, so you can create multiple XML data files quickly. However, you can still save time and export XML more reliably with any amount of data.
This was a very simple example, though, and in the future, you might find yourself facing some tougher scenarios. If this happens, it will help if you have advanced Excel skills. If you want to learn how to handle these scenarios, take a look at this course about Pivot Tables, Power Query, Power Pivot, and DAX.
I hope that you have enjoyed this article. You’ve now successfully converted Excel to XML. Hopefully when you need to do it in your work, you will find it easy to do.
If you’re interested in learning more advanced Excel skills, let’s move on to learning how to use SQL in Excel.
Frequently Asked Questions
What is Excel XML format?
Excel can export data into XML (or Extensible Markup Language). It is based on an XML schema, which defines the structure of the file. You can create it in NotePad. To convert the data, go to the Developer tab – Source. You can then load your XML schema and match it to the data. You can then go to Developer – Export, or File – Save as – XML file.
How do I open an XML file in Excel?
To open an XML file in Excel, you should go to File – Open. On the PC, you should change the File Type from “All Excel Files (*.xl*)” to “XML file (*.xml).” You should then navigate to where the file is stored, click on it, and click OK. Your file will then be opened in Excel.
How do I view an XML file?
You can view an XML file in either Notepad or Excel. To view it in NotePad, go to File – Open, and change the File Type from “Text Documents (*.txt)” to “All Files (*.*)”. To view it in Excel, go to File – Open, and change the File Type to “XML Files (*.xml).”
Конвертация форматов Microsoft Excel в XML
XML – это универсальный формат работы с данными. Его поддерживает множество программ, в том числе из сферы СУБД. Поэтому конвертация информации в XML важна именно с точки зрения взаимодействия и обмена данными между различными приложениями. Excel как раз входит в число программ, которые работают с таблицами, и даже может выполнять манипуляции с базами данных. Разберемся, как конвертировать файлы Эксель в XML.
Процедура конвертации
Конвертация данных в формат XML не такой уж простой процесс, так как в его ходе должна быть создана специальная схема (schema.xml). Впрочем, для преобразования информации в простейший файл данного формата достаточно иметь под рукой обычные инструменты сохранения в Excel, а вот для создания хорошо структурированного элемента придется основательно повозиться с составлением схемы и её подключением к документу.
Способ 1: простое сохранение
В Excel можно сохранить данные в формате XML, просто воспользовавшись меню «Сохранить как…». Правда, нет гарантии, что потом все программы будут корректно работать с файлом, который был создан таким способом. Да и не во всех случаях этот способ работает.
- Запускаем программу Excel. Для того, чтобы открыть элемент, подлежащий конвертации переходим во вкладку «Файл». Далее жмем по пункту «Открыть».
Запускается окно открытия файлов. Переходим в директорию, где содержится файл, который нам нужен. Он должен быть в одном из форматов Эксель – XLS или XLSX. Выбираем его и жмем на кнопку «Открыть», расположенную в нижней части окна.
Как видим, файл был открыт, а его данные отобразились на текущем листе. Опять переходим во вкладку «Файл».
Открывается окно сохранения. Переходим в ту директорию, в которой желаем, чтобы хранился конвертированный файл. Впрочем, можно оставить и директорию по умолчанию, то есть ту, что предложила сама программа. В этом же окне, если возникнет желание, можно изменить наименование файла. Но основное внимание нужно обратить на поле «Тип файла». Раскрываем перечень кликом по данному полю.
Среди вариантов сохранения ищем наименование «Таблица XML 2003» или «XML-данные». Выбираем один из этих пунктов.
Таким образом, преобразование файла из формата Excel в XML будет совершено.
Способ 2: инструменты разработчика
Конвертировать формат Excel в XML можно с помощью инструментов разработчика на вкладке программы. При этом, если пользователь все выполнит правильно, то на выходе он получит, в отличие от предыдущего способа, полноценный XML-файл, который корректно будет восприниматься сторонними приложениями. Но сразу нужно сказать, что не каждому новичку может хватить знаний и умений сразу научится конвертировать данные таким способом.
-
По умолчанию вкладка инструментов разработчика отключена. Поэтому, прежде всего, нужно её активировать. Переходим во вкладку «Файл» и кликаем по пункту «Параметры».
В открывшемся окне параметров перемещаемся в подраздел «Настройка ленты». В правой части окна устанавливаем галочку около значения «Разработчик». После этого жмем на кнопку «OK», размещенную в нижней части окна. Вкладка инструментов разработчика теперь включена.
Далее открываем таблицу Excel в программе любым удобным способом.
На её основе нам предстоит создать схему, которая формируется в любом текстовом редакторе. Для этих целей можно использовать и обычный Блокнот Windows, но лучше применять специализированное приложение для программирования и работы с языками разметки Notepad++. Запускаем эту программу. В ней создаем схему. На нашем примере она будет выглядеть, как показано внизу на скриншоте окна Notepad++.
Как видим, открывающим и закрывающим тегом для документа в целом служит «data-set». В этой же роли для каждой строки выступает тег «record». Для схемы вполне будет достаточно, если мы возьмем всего две строки таблицы, а не будем переводить её всю вручную в XML. Название открывающего и закрывающего тега столбца может быть произвольным, но в данном случае для удобства мы предпочли просто перевести русскоязычные наименования колонок на английский язык. После того, как данные внесены, просто сохраняем их через функционал текстового редактора в любом месте на жестком диске в формате XML под названием «schema».
Опять переходим к программе Excel с уже открытой таблицей. Перемещаемся во вкладку «Разработчик». На ленте в блоке инструментов «XML» кликаем по кнопке «Источник». В открывшемся поле в левой части окна жмем на кнопку «Карты XML…».
В открывшемся окне кликаем по кнопке «Добавить…».
Запускается окно выбора источника. Переходим в директорию расположения схемы составленной ранее, выбираем её и кликаем по кнопке «Открыть».
После того, как элементы схемы появились в окне, перетаскиваем их с помощью курсора в соответствующие ячейки наименования столбцов таблицы.
Как видим, существуют два основных способа конвертации файлов XLS и XLSX в формат XML программой Microsoft Excel. Первый из них предельно простой и заключается в элементарной процедуре сохранения с заданным расширением через функцию «Сохранить как…». Простота и понятность данного варианта, несомненно, являются преимуществами. Но у него есть один очень серьезный недостаток. Преобразование выполняется без учета определенных стандартов, и поэтому файл, конвертируемый таким способом, сторонними приложениями может просто не распознаваться. Второй вариант предполагает составление карты XML. В отличие от первого способа, таблица, преобразованная по данной схеме, будет соответствовать всем стандартам качества XML. Но, к сожалению, не каждый пользователь сможет быстро разобраться с нюансами этой процедуры.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Собрать данные из XML файлов в Excel и экспортировать
Microsoft Excel – удобный инструмент для организации и структурирования самых разнообразных данных. Он позволяет обрабатывать информацию разными методами, редактировать массивы данных.
Рассмотрим возможности использования его для формирования и обработки файлов веб-приложений. На конкретном примере изучим основы работы с XML в Excel.
Как создать XML-файл из Excel
XML – стандарт файла для передачи данных в Сети. Excel поддерживает его экспорт и импорт.
Рассмотрим создание XML-файла на примере производственного календаря.
- Сделаем таблицу, по которой нужно создать XML файл в Excel и заполним ее данными.
- Создадим и вставим карту XML с необходимой структурой документа.
- Экспортируем данные таблицы в XML формат.
- Наша таблица – производственный календарь.
- Создаем в любом текстовом редакторе (например, «Блокнот») желаемую карту XML структуры для генерации файла сохраним. В данном примере буде использовать следующую карту структуры:
Сохраняем в XML файл.
Другие способы получения XML-данных (схемы):
- Скачать из базы данных, специализированного бизнес-приложения. Схемы могут предоставляться коммерческими сайтами, службами. Простые варианты находятся в открытом доступе.
- Использовать готовые образцы для проверки карт XML. В образцах – основные элементы, структура XML. Копируете – вставляете в программу «Блокнот» — сохраняете с нужным расширением.
Как сохранить файл Excel в формате XML
Один из вариантов:
- Нажимаем кнопку Office. Выбираем «Сохранить как» — «Другие форматы».
- Назначаем имя. Выбираем место сохранения и тип файла – XML.
Если выдает ошибку, книгу можно сохранить в виде таблицы XML 2003 либо веб-страницы. С этими форматами проблем, как правило, не возникает.
- Скачать конвертер XLC в XML. Либо найти сервис, с помощью которого можно экспортировать файл онлайн.
- Скачать с официального сайта Microsoft надстройку XML Tools Add-in. Она в бесплатном доступе.
- Открываем новую книгу. Кнопка Office – «Открыть».
Как открыть XML файл в Excel
- Меняем формат на «файлы XML». Выбираем нужный файл. Жмем «Открыть».
- Способ открытия – XML-таблица. ОК.
- Появляется оповещение типа
Жмем ОК. С полученной таблицей можно работать, как с любым файлом Excel.
Как преобразовать файл XML в Excel
- Меню «Разработчик» — вкладка «Импорт».
- В диалоговом окне выбираем файл XML, который хотим преобразовать.
- Нажимаем «Импорт». Программа Excel предложит самостоятельно создать схему на основе полученных данных. Соглашаемся – ОК. Откроется окно, где нужно выбрать место для импортируемого файла.
- Назначаем диапазон для импорта. Лучше брать с «запасом». Жмем ОК.
Созданную таблицу редактируем и сохраняем уже в формате Excel.
Как собрать данные из XML файлов в Excel
Принцип сбора информации из нескольких XML-файлов такой же, как и принцип преобразования. Когда мы импортируем данные в Excel, одновременно передается карта XML. В эту же схему можно переносить и другие данные.
Каждый новый файл будет привязываться к имеющейся карте. Каждому элементу в структуре таблицы соответствует элемент в карте. Допускается только одна привязка данных.
Чтобы настроить параметры привязки, откройте в меню «Разработчик» инструмент «Свойства карты».
- Каждый новый файл будет проверяться программой Excel на соответствие установленной карте (если поставим галочку напротив этого пункта).
- Данные могут обновляться. Либо новая информация добавится в существующую таблицу (имеет смысл, если нужно собрать данные из похожих файлов).
Это все ручные способы импорта и экспорта файлов.
Преобразование файлов Excel в XML и обратно
Немного об Excel и XML
Итак, прежде чем узнать, как открыть, создать или перевести файл XML в Excel и обратно, давайте поближе познакомимся с типами этих файлов. Здесь нужно сразу отметить, что документы Excel имеют множество форматов, в то время, как XML — и есть формат файла. Поэтому не стоит путать эти два понятия.
Microsoft Excel является мощной программой для вычислений с множеством полезных функций
Программа Microsoft Excel является специальной утилитой, предназначенной для создания и редактирования таблиц. С ними вы уже можете делать всё что угодно: создавать базы, диаграммы, формулы и другие типы данных. Это очень мощный инструмент, поэтому все его возможности мы обсуждать не будем. Сегодня наша цель несколько другая, и мы не станем отходить от темы сегодняшней дискуссии.
Файлы XML, для более простого понимания, предназначены для хранения, обмена различных данных между утилитами. Особенно часто пользуются этим языком разметки при передаче информации через интернет. И когда вам нужно перенести табличные данные из Экселя на сайт, например, то вам нужно будет преобразовать свой документ, чтобы он правильно отображался. Поэтому давайте не будем оттягивать момент истины и сразу приступим к выполнению операции.
Как преобразовать Excel в XML
Дорогие друзья, на самом деле преобразование файлов является достаточно простым занятием. Однако, у некоторых пользователей могут возникнуть проблемы при переносе данных, поэтому сегодня мы с вами рассмотрим несколько способов для осуществления нашего замысла. Поэтому набираемся терпения и приступаем к действиям:
- Самый простой способ, который может не сработать в некоторых случаях, это сохранение файла в нужном формате в самой программе Microsoft Excel. Для этого откройте необходимый документ в этом приложении. Затем нажмите на кнопку «Файл» (рассматривается на примере Office 2013, в других версиях процесс сохранения может несколько отличаться) в верхнем левом углу окна Экселя, затем пункт «Сохранить как», после чего выберите место сохранения документа, дайте ему имя и во вкладке типа файла укажите «XML данные». После этого проверьте, правильно ли всё у вас получилось. Если нет, то пробуем следующие способы.
- Итак, если возникает ошибка в предыдущем случае, то, возможно, в вашей копии программы не предусмотрена поддержка и соответствующие надстройки. Чтобы их установить перейдите на сайт компании Microsoft http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=3108, скачайте и инсталлируйте этот файл к себе на компьютер или ноутбук. Далее, запустите программу Microsoft Excel и нажмите на большую цветную кнопку в левом верхнем углу окна приложения (здесь мы уже смотрим пример на версии 2007-го года). В появившемся блоке кликните по параметрам, слева от выхода из утилиты. Теперь зайдите в пункт надстроек и нажмите на кнопку «Перейти» напротив пункта «Управление». Выскочит диалоговое окно, где нужно кликнуть по обзору и найти документ, который вы скачали с сайта Майкрософта ранее. Теперь кликаем ОК и переходим в основное окно программы, где у вас теперь есть вкладка XML Tools — с помощью него теперь вы спокойно можете создать файл XML из существующей таблицы. Сохранять его нужно аналогично предыдущему пункту.
- Если вам совсем не хочется загружать и себя, и свой компьютер такой информацией, то можете прибегнуть к помощи специальных утилит-конвертеров или онлайн-версий этих программ. К примеру, вы можете загрузить приложение Format Factory, которое позволит вам совершить все необходимые действия. Но стоит помнить, что сохранённые и преобразованные таким образом файлы не всегда работают в дальнейшем. То есть во время операции могут повредиться сектора или области в памяти документа, что негативно скажется на нём — он попросту может не открыться в XML-редакторе, например. Поэтому рекомендуется использовать либо профессиональные программы, либо сам Microsoft Excel.
Как перевести XML в Excel
Прежде чем перевести XML в Excel, нужно его для начала открыть. Рассмотрим весь этот непродолжительный процесс ниже. Итак, приступаем:
- Запустите программу Microsoft Excel с помощью ярлыка на рабочем столе или через меню проводника.
- Нажмите на «Открыть другие книги» внизу главной страницы, если вы используете Office В других версиях процесс может несколько отличаться.
- Далее, нажимаем на «Компьютер» или другое место, где расположен ваш XML-файл, затем кликните «Обзор» и смените в появившемся окне тип данных на «Файлы XML».
- Теперь ищем необходимый файл и открываем его в нашей программе с помощью одноимённой кнопки.
- Далее, обсудим то, как преобразовать наш документ. Перейдите во вкладку разработчика, затем нажмите на кнопку импорта.
- В открывшемся окне нужно будет снова найти и выбрать наш документ, над которым вы и хотите произвести действие, затем кликаем на кнопку «Импорт».
- Затем настраиваете всё под себя: область для импорта, место сохранения и другие параметры. После чего вы получите таблицу, которую позже можно сохранить в нужном для вас формате. Как видите, ничего сложного нет.
Подведём итоги
Дорогие читатели, сегодня мы с вами узнали не только как преобразовать файлы XML в Excel и обратно, но и как создать и открыть их при несовместимости версий. Надеемся, что у вас всё получилось и больше не осталось никаких вопросов. Не забываем делиться в комментариях своим мнением и опытом: возможно, вы знаете простой способ конвертации. Расскажите другим пользователям, получилось ли у вас перевести один тип документа. Если сработало, то поделитесь тем, каким способом воспользовались вы.
Конвертируем xls в xml
Расскажу вам быстрый способ создания xml-файла из таблицы экселя!
XML документы — это очень сильная и мощная вещь. С помощью одного XML файла можно наполнить сайт информацией за считанные секунды! Ведь во всех современных движках (CMS) присутствует возможность импорта из хмл файла. Так к чему это я.
Файлы формата XML используются не только для наполнения сайтов, каждый может использовать их в своих целях (о них в последующих статьях поведаю). Совсем недавно мне потребовалось экспортировать файл XLS в XML. Сначала я начал искать конверторы для этого, но ненайдя ничего стоящего, попробовал сделать операцию конвертирования с помощью самого экселя. И теперь хочу с вами поделиться этим «тайным» знанием!
Офф-топ, о том, как из djvu сделать pdf, можно прочесть тут.
Как известно, форматы *.xls (*.xlsx в 2007 офисе) — это форматы Microsoft Office Excel. 2003 офис ушел в прошлое, уже есть 2010, но я работаю на 2007, а, следовательно, рассказывать буду, основываясь на нем. Погнали!
1. Заходим на сайт Microsoft, и скачиваем надстройку для работы с XML. Скачать Excel 2003 Add-in: XML Tools Add-in. Весит она не много, 397 KB.
2. Устанавливаем ее к себе на компьютер. Сложного в установке ничего нет. По умолчанию надстройка устанавливается вот сюда: c:Office SamplesOfficeExcel2003XMLToolsAddin
3. Теперь открываем Excel, заходим в меню и выбираем пункт «Параметры Excel».
4. В появившемся окне, слева, выбираем пункт «Надстройки», а внизу окна, нажимаем на кнопку «Перейти…»
5. Перед вами откроется новое окно, в нем вам необходимо нажать кнопку «Обзор…». Как оно выглядит, показано ниже.
6. Теперь вам необходимо найти установленную надстройку XmlTools (смотреть пункт 2). Выбрать ее и нажать ОК!
7. Если вы все сделали правильно, вы увидите следующее окно! Смело жмем ОК, установка завершена!
8. У вас появилось в верхнем меню вкладка надстройка, а слева пункт XML Tools.
С установкой разобрались, а теперь переходим непосредственно к конвертированию (экспорту) xls в xml.
1. Для этого открываем файл с данными, которые необходимо перегнать. Затем выбираем первый пункт в раскрывающемся меню «Convert a Range to an XML List…»
2. Перед вами откроется небольшое окошко, что вам в нем необходимо? Там есть радио кнопки, No и Yes, для чего они? Все просто, если у вас есть заголовок к данным (в моем случае он есть) выбираем Yes, а если его нет, то соответственно No. Затем нажимаем на маленький прямоугольник в верхней строке.
3. Выделяем область данных, которые конвертируем и нажимаем на кнопку справа в появившемся окне. Возвращается предыдущее окно, в котором жмем ОК.
4. Ваша табличка должна измениться, можно сказать преобразиться, у меня это выглядит вот так:
5. Все готово, осталось только сохранить готовый xml документ. Заходим в меню, выбираем «Сохранить как…», «Другие форматы».
6. В раскрывающемся списке «Тип файла» выбираем XML-данные, нажимаем «Сохранить».
Я вас поздравляю, ваш файл создан!
Надеюсь, все было изложено подробно и понятно, однако если возникнут вопросы, пишите!
Экспорт Excel в XML и наоборот
Вы можете конвертировать файл Excel в файл данных XML или наоборот. Это позволяет обмениваться информацией между различными приложениями. Для начала откройте вкладку Developer (Разработчик).
Вот данные, которые мы хотим преобразовать в файл XML:
Сперва создадим схему, основанную на исходных данных в формате XML. Схема определяет структуру XML-файла.
-
Excel для этой цели не подойдёт, поэтому откройте, к примеру, Блокнот и вставьте следующие строки:
Примечание: Теги названы по именам столбцов, но вы можете дать им любое название. Например, вместо – .
- Сохраните файл как schema.xml.
- Откройте книгу Excel.
- Кликните по Source (Источник) на вкладке Developer (Разработчик). Откроется XML панель задач.
- Чтобы добавить карту XML, нажмите кнопку XML Maps (XML карты).
Появится диалоговое окно XML Maps (Карты XML).
- Нажмите Add (Добавить).
- Выберите schema.xml и дважды кликните ОК.
- Теперь просто перетащите 4 элемента из дерева в XML панели задач на лист (строка 1).
- Нажмите кнопку Export (Экспорт) в разделе XML на вкладке Developer (Разработчик).
- Сохраните файл и нажмите Enter.
Это экономит немало времени!
Примечание: Для импорта XML-файла откройте пустую книгу. На вкладке Developer (Разработчик) нажмите кнопку Import (Импорт) и выберите XML-файл.