SpreadsheetML - XLSX, XML
О SpreadsheetML
SpreadsheetML - это название семейства форматов на основе XML для документов электронных таблиц. Существует несколько версий SpreadsheetML:
- Версия SpreadsheetML 2003 была введена в Microsoft Word 2003. SpreadsheetML был значительным шагом Microsoft в направлении открытости формата документа.
- Office Open XML (OOXML) - новый формат на основе XML, введенный в приложения Microsoft Office 2007. Office Open XML - это контейнерный формат для нескольких специализированных языков разметки на основе XML. Версия SpreadsheetML 2007 - это язык разметки, используемый Microsoft Office Excel 2007 для хранения своих документов.
- Microsoft Excel 2010 и более поздние версии хранят документы в версии SpreadsheetML 2010, определенной в обновленном стандарте OOXML.
SpreadsheetML в Aspose.Cells
Доступно три «версии» формата SpreadsheetML:
«Версия» формата SpreadsheetML | Применимый стандарт/спецификация | Поддерживается в Aspose.Cells for Java |
---|---|---|
Microsoft Excel 2003 | Microsoft Excel 2003 XML | Да |
Microsoft Excel 2007 | OOXML ECMA-376 | Да |
Microsoft Excel 2010 и более поздние версии форматов | OOXML ISO/IEC DIS 29500 | Да |
Документы формата OOXML SpreadsheetML чаще всего поставляются в виде файлов XLSX, которые представляют собой ZIP-пакеты. Помимо XLSX, Aspose.Cells обеспечивает обширную поддержку загрузки, сохранения и конвертации документов SpreadsheetML. Такая всеохватывающая реализация возможна, потому что Aspose.Cells был разработан с учетом структуры документов Microsoft Excel (и SpreadsheetML известен своим внутренним представлением документов Microsoft Excel). |
Документ XLSX, созданный Aspose.Cells и открытый в Microsoft Excel
Документ XLSX, созданный Aspose.Cells, следует конвенции открытой упаковки и может быть открыт в приложении, поддерживающем ZIP
OOXML - открытый формат, зачем использовать Aspose.Cells?
Действительно, технология Office Open XML позволяет создавать приложения для обработки и генерации документов с использованием только классов XML без привлечения сторонних библиотек, таких как Aspose.Cells. Однако мы настоятельно рекомендуем всё же использовать Aspose.Cells при работе с документами OOXML, вместо работы через XML или другие библиотеки.
Спецификация OOXML содержит несколько тысяч страниц. Открытость и стандартизация не означают простоты. Для корректной обработки или генерации документов OOXML необходимо тщательно изучить формат.
Помимо упрощения корректной обработки и создания допустимых документов, Aspose.Cells предоставляет следующие важные функции, которых у вас не будет при работе с файлами OOXML непосредственно через XML или другие сторонние библиотеки:
- Качественные конверсии между многими популярными форматами Excel, включая конверсию в PDF, HTML, TIFF и печать.
- Возможность создания документов из фрагментов, из одного или нескольких документов, автоматически объединяя данные по стилистическому форматированию, диаграммам и графикам.
- Функции высокого уровня, такие как импорт данных из различных источников данных, включая массив, ArrayList, DataTable, DataColumn, DataGrid, DataView и DataReader, или экспорт данных для заполнения DataTable или массива одной строкой кода.
- Надежный расчетный движок формул, поддерживающий практически все стандартные и продвинутые функции Microsoft Excel.
Рассмотрим следующий пример. Некоторые ячейки содержат текст «Привет, мир» жирным шрифтом. Теперь представьте, что вам необходимо написать программу, которая ищет все фразы «Привет, мир» в таблице и заменяет их на «До свидания, Земля».
Фрагмент документа Office Open 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">
<dimension ref="A1:M184" />
\- <sheetViews>
\- <sheetView tabSelected="1" workbookViewId="0">
<selection activeCell="H27" sqref="H27" />
</sheetView>
</sheetViews>
<sheetFormatPr defaultRowHeight="15" />
\- <sheetData>
\- <row r="1" spans="1:7">
\- <c r="A1" s="1" t="s">
<v>0</v>
</c>
</row>
\- <row r="11" spans="1:7">
\- <c r="D11" s="1" t="s">
<v>0</v>
</c>
</row>
\- <row r="15" spans="1:7">
\- <c r="G15" s="1" t="s">
<v>0</v>
</c>
</row>
\- <row r="21" spans="2:7">
\- <c r="G21" s="1" t="s">
<v>0</v>
</c>
</row>
\- <row r="25" spans="2:7">
\- <c r="F25" s="1" t="s">
<v>0</v>
</c>
</row>
\- <row r="31" spans="2:7">
\- <c r="B31" s="1" t="s">
<v>0</v>
</c>
</row>
\- <row r="34" spans="6:13">
\- <c r="M34" s="1" t="s">
<v>0</v>
</c>
</row>
\- <row r="38" spans="6:13">
\- <c r="F38" s="1" t="s">
<v>0</v>
</c>
</row>
\- <row r="117" spans="8:8">
\- <c r="H117" s="1" t="s">
<v>0</v>
</c>
</row>
\- <row r="184" spans="8:8">
\- <c r="H184" s="1" t="s">
<v>0</v>
</c>
</row>
</sheetData>
<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3" />
</worksheet>
Даже реализация простой операции поиска и замены в документе Office Open XML затруднительна.
Наш совет: помните, что открыто и стандартизировано не означает простоты, используйте Aspose.Cells.