Loading TOC...

xdmp:excel-convert

xdmp:excel-convert(
   $doc as node(),
   $filename as xs:string,
   [$options as (element()|map:map)?]
) as node()*

Summary

Converts a Microsoft Excel document to XHTML. Returns several nodes, including a parts node, the converted document xml node, and any other document parts (for example, css files and images). The first node is the parts node, which contains a manefest of all of the parts generated as result of the conversion. Does not convert Microsoft Office 2007 and later documents.

Parameters
doc Microsoft Office Excel document to convert to HTML, as binary node().
filename The root for the name of the converted files and directories. If the specified filename includes an extension, then the extension is appended to the root with an underscore. The directory for other parts of the conversion (images, for example) has the string "_parts" appended to the root. For example, if you specify a filename of "myFile.xls", the generated names will be "myFile_xls.xhtml" for the xml node and "myFile_xls_parts" for the directory containing the any other parts generated by the conversion (images, css files, and so on).
options The options element for this conversion. The node for the options must be in the xdmp:excel-convert namespace. The default value is () . In addition to the options shown below, you can specify xdmp:tidy options by entering the tidy option elements in the xdmp:tidy namespace.

Options include:

<tidy>

Specify true to run tidy on the document and false not to run tidy. If you run tidy, you can also specify an xdmp:tidy options node.

<sheetID>

An integer specifying which sheet of the input Excel document to convert. If this option is not set, all sheets are converted.

<compact>

Specify true to produce "compact" HTML, that is, without style information. The default is false.

<print-area-only>

Specify true to convert only the print area of the sheet.

<sheet-by-sheet>

Specify true to produce one document for each sheet. The default is false.

Sample Options Node:

The following is a sample options node which specifies that tidy should be used to clean the generated html, specifies to use the tidy "clean" option, and specifies to only convert sheet 2 of the document:
<options xmlns="xdmp:excel-convert"
         xmlns:tidy="xdmp:tidy">
  <tidy>true</tidy>
  <tidy:clean>yes</tidy:clean>
  <sheetID>2</sheetID>
</options>

Usage Notes

This function is not available on Mac OS X.

This function requires separate converter installation package in MarkLogic version 8 releases starting with 8.0-8, see MarkLogic Converters Installation Changes in Version 8 Releases Starting at 8.0-8 in the Installation Guide for All Platforms.

The convert functions return several nodes. The first node is a manifest containing the various parts of the conversion. Typically there will be an xml part, a css part, and some image parts. Each part is returned as a separate node in the order shown in the manifest.

Therefore, given the following manifest:

<parts>
  <part>myFile_xls.xhtml</part>
  <part>myFile_xls_parts/conv.css</part>
  <part>myFile_xls_parts/toc.xml</part>
</parts>

the first node of the returned query is the manifest, the second is the "myFile_xls.xhtml" node, the third is the "myFile_xls_parts/conv.css" node, and the fourth is the myFile_xls_parts/toc.xml node.

Example

let $results := xdmp:excel-convert(
                         xdmp:document-get("myFile.xls"),
                         "myFile.xls" ),
    $manifest := $results[1]
return
$results[2 to last()]

=> all of the converted nodes

Stack Overflow iconStack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.