Microsoft XML Documents


Document Examples:

WordOpenXML_edit

Manually editing the Word 2003 XML document structure

When saving a docx file to 2003 xml format, open it using BBEdit and perform these steps.

Replace '><' 	with '>\r\t<'
	This spaces out the text for easier reading.
	\r means return
	\t means tab

Replace '<w:rPr>\r\t<w:b/>\r\t<w:b-cs/>\r\t</w:rPr>'
	with '<w:rPr><w:b/><w:b-cs/></w:rPr>'
	This will reduce the number of lines and begins to group code together.

Replace '<w:pPr>\r\t<w:rPr>' 	with '<w:pPr><w:rPr>'
Replace '</w:rPr>\r\t</w:pPr>' 	with '</w:rPr></w:pPr>'
Replace '\r\t<w:proofErr w:type="spellStart"/>'		with ''
Replace '\r\t<w:proofErr w:type="spellEnd"/>'		with ''

Grep Replace ' wsp:rsid(.*?)"(.*?)"' 	with ''
Grep Replace '\r\t<w:rsid(.*?)>' 	with ''
	This removes most of the code to track document changes.
	The 'wsp' replace is specific to prevent <w:p wsp:rsid../> from becoming <w:p> because the missing slash is an issue.

Each time the formatting of a word or character is modified, new code is added to note the change.  This means many of the words and sentences will need to be reunited with their text.
Example Before:
	<w:p>
	<w:r>
	<w:t>Possible promotion in the magazine</w:t>
	</w:r>
	<w:r>
	<w:t> and</w:t>
	</w:r>
	<w:r>
	<w:t> on the websit</w:t>
	</w:r>
	<w:r>
	<w:t>e / possible bookazine spin-off to come</w:t>
	</w:r>
	<w:r>
	<w:t> out in Jan 16</w:t>
	</w:r>
	</w:p>

Example After:
	<w:p>
	<w:r><w:t>Possible promotion in the magazine and on the website / possible bookazine spin-off to come out in Jan 16</w:t></w:r>
	</w:p>



Use this AppleScript to perform all the replacements at once.

---

set replaceList to {{"><", ">
	<"}, {"<w:rPr>
	<w:b/>
	<w:b-cs/>
	</w:rPr>", "<w:rPr><w:b/><w:b-cs/></w:rPr>"}, {"<w:pPr>
	<w:rPr>", "<w:pPr><w:rPr>"}, {"</w:rPr>
	</w:pPr>", "</w:rPr></w:pPr>"}, {"
	<w:proofErr w:type=\"spellStart\"/>", ""}, {"
	<w:proofErr w:type=\"spellEnd\"/>", ""}, {" wsp:rsid(.*?)\"(.*?)\"", ""}, {"
	<w:rsid(.*?)>", ""}}
tell application "BBEdit"
	tell window 1
		repeat with thePair in replaceList
			# Check the "Search Options" in BBEdit's scipting dictionary.
			replace (item 1 of thePair) using (item 2 of thePair) options {starting at top:true, case sensitive:false, search mode:grep}
		end repeat
	end tell
end tell

---


Standard FileMaker substitute text replacements from HTML to OOXML.

   ; [ "<w:rPr><w:b/><w:b-cs/></w:rPr>¶" & Char(9) & "<w:t><span style='color:red;'>" ; 
      "<w:rPr><w:b/><w:b-cs/><w:color w:val=\"FF0000\"/></w:rPr><w:t>" ]
   ; [ "<span style='color:red;'>" ; "</w:t></w:r><w:r><w:rPr><w:color w:val=\"FF0000\"/></w:rPr><w:t>" ]
   ; [ "</span>" ; "</w:t></w:r><w:r><w:t>" ]
   ; [ "<b>" ; "</w:t></w:r><w:r><w:rPr><w:b/></w:rPr><w:t>" ]
   ; [ "</b>" ; "</w:t></w:r><w:r><w:t>" ]
   ; [ "<i>" ; "</w:t></w:r><w:r><w:rPr><w:i/></w:rPr><w:t>" ]
   ; [ "</i>" ; "</w:t></w:r><w:r><w:t>" ]
   ; [ "<em>" ; "</w:t></w:r><w:r><w:rPr><w:i/></w:rPr><w:t>" ]
   ; [ "</em>" ; "</w:t></w:r><w:r><w:t>" ]
   ; [ "<u>" ; "</w:t></w:r><w:r><w:rPr><w:u w:val="single"/></w:rPr><w:t>" ]
   ; [ "</u>" ; "</w:t></w:r><w:r><w:t>" ]
   ; [ "<br />" ; "</w:t><w:br/><w:t>" ]
   ; [ "&" ; "&amp;" ]




WordOpenXML_notes

Office Open XML on Wikipedia - https://en.wikipedia.org/wiki/Office_Open_XML
OfficeOpenXML Overview - http://officeopenxml.com/WPcontentOverview.php
	see also OpenXML or OOXML
	OfficeOpenXML.com site has a lot of information, but is not searchable (as far as I can tell). (2016)

This is the doctype.  It tells programs how to read this document.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

This tells Windows computers to open the file using Microsoft Word.
<?mso-application progid="Word.Document"?>

Setup namespaces.
<w:wordDocument ... >
<w:ignoreSubtree w:val="http://schemas.microsoft.com/office/word/2003/wordml/sp2"/>

Basic metadata (optional) about who created this document, when, and other specs (word count, char count).
<o:DocumentProperties></o:DocumentProperties>

Setup control for FONTS that will be used in this document.
<w:fonts></w:fonts>

This controls formatting for LISTS.
<w:lists></w:lists>

This is like the CSS section of an HTML file.  It sets up the text styles.
<w:styles>
	LatentStyles section is long and can be removed.
	<w:latentStyles...></w:latentStyles>
	
	Style abbreviations
	dxa - specifies that a value is in twentieths of a point (1/1440 of an inch).
	nil - zero
	pct - specifies a value as 1/5 percent of the table width, so 4975 = 99.5%.
	
</w:styles>

<w:shapeDefaults>
	<o:shapedefaults v:ext="edit" spidmax="1026"/>
	<o:shapelayout v:ext="edit">
	<o:idmap v:ext="edit" data="1"/>
	</o:shapelayout>
</w:shapeDefaults>

Document Properties
<w:docPr>
	<w:view w:val="normal"/>
	<w:zoom w:percent="100"/>
	<w:doNotEmbedSystemFonts/>
	<w:proofState w:spelling="clean" w:grammar="clean"/>
	<w:defaultTabStop w:val="720"/>
	<w:characterSpacingControl w:val="DontCompress"/>
	<w:webPageEncoding w:val="unicode"/>
	<w:optimizeForBrowser/>
	<w:allowPNG/>
	<w:doNotSaveWebPagesAsSingleFile/>
	<w:savePreviewPicture/>
	<w:validateAgainstSchema/>
	<w:saveInvalidXML w:val="off"/>
	<w:ignoreMixedContent w:val="off"/>
	<w:alwaysShowPlaceholderText w:val="off"/>
	<w:compat/>
	RSID values can be deleted both here and in the body.
	<wsp:rsids>
		<wsp:rsidRoot wsp:val="000058C0"/>
		<wsp:rsid wsp:val="000058C0"/>
		<wsp:rsid wsp:val="00A856F8"/>
		<wsp:rsid wsp:val="00D67D57"/>
	</wsp:rsids>
</w:docPr>

Start the BODY of the document
<w:body>

Body is made up of one or more Sections. Sections can be page breaks.
<wx:sect>
	
	Text is written by opening the paragraph <w:p>, the run <w:r> (a non-block region of text) and the text <w:t> elements.
	<w:p><w:r><w:t>This is normal text.</w:t></w:r></w:p>
	
	An independent return can be used within a section.
	<w:p/>
	
	A simple return <w:br/> (break) can be used within <w:r> tags, but outside of <w:t> tags.
	<w:p><w:r><w:t>This is a</w:t><w:br/><w:t>return.</w:t></w:r></w:p>
	
	<w:p>
		<w:r><w:t>You can </w:t></w:r>
		<w:r><w:rPr><w:u w:val="single"/></w:rPr><w:t>Underline</w:t></w:r>
		<w:r><w:t> text in a document, or make it </w:t></w:r>
		<w:r><w:rPr><w:b/><w:b-cs/></w:rPr><w:t>Bold</w:t></w:r>
		<w:r><w:t>.</w:t></w:r>
	</w:p>
	
	
	Here is a page break.
	<w:p><w:r><w:br w:type="page"/></w:r></w:p>
	
	Control characters are used outside of the text <w:t> markers.
	<w:p><w:r><w:t>This is a </w:t><w:tab/><w:t>tab.</w:t></w:r></w:p>
	
	Setting a tab position is done in the paragraph properties <w:pPr>.
	<w:p><w:pPr><w:tabs><w:tab w:val="left" w:pos="2160"/></w:tabs></w:pPr><w:r>
	<w:t>This is a </w:t><w:tab/><w:t>SET tab.</w:t></w:r></w:p>
	
	Turning spell-check off for a block of text is also done in the paragraph properties.
	<w:p><w:r><w:rPr><w:noProof/></w:rPr><w:t>Ignore this text during spellll check.</w:t></w:r></w:p>
	
	Indent
	<w:p><w:pPr><w:ind w:left="360"/></w:pPr></w:p>
	
	
	Horizontal line code, comes between <w:p> tags.
	...</w:p>
	<wx:pBdrGroup>
	<wx:borders><wx:bottom wx:val="solid" wx:bdrwidth="30" wx:space="1" wx:color="auto"/></wx:borders>
	<w:p><w:pPr><w:pBdr>
	<w:bottom w:val="single" w:sz="12" wx:bdrwidth="30" w:space="1" w:color="auto"/>
	</w:pBdr></w:pPr></w:p>
	</wx:pBdrGroup>
	<w:p>...
	
	
	Bullet List
	<w:p><w:pPr><w:pStyle w:val="ListParagraph"/>
	<w:listPr><w:ilvl w:val="0"/><w:ilfo w:val="1"/><wx:t wx:val="·"/><wx:font wx:val="Symbol"/>
	</w:listPr></w:pPr>
	<w:r><w:t>{market_points}</w:t></w:r>
	<w:r><w:br/></w:r></w:p>
	
	
	A numbered list might look something like this. The justification class <w:jc> controls left & right text justification, or both (force justify).
	<w:p>
		<w:pPr>
			<w:listPr><w:ilvl w:val="0"/><w:ilfo w:val="1"/></w:listPr>
			<w:jc w:val="both"/>
		</w:pPr>
		<w:r><w:t>This is my first item.</w:t></w:r>
	</w:p>
	<w:p/>
	<w:p>
		<w:pPr>
			<w:listPr><w:ilvl w:val="0"/><w:ilfo w:val="1"/></w:listPr>
			<w:jc w:val="both"/>
		</w:pPr>
		<w:r><w:t>This is my second item.</w:t></w:r>
	</w:p>
	
	
	Another type of numbered list
	<w:p><w:pPr><w:pStyle w:val="ListParagraph"/>
	<w:listPr><w:ilvl w:val="0"/><w:ilfo w:val="3"/><wx:t wx:val="1."/></w:listPr></w:pPr>
	<w:r><w:t>{vision_points}</w:t></w:r>
	<w:r><w:br/></w:r></w:p>
	<w:p><w:pPr><w:pStyle w:val="ListParagraph"/>
	<w:listPr><w:ilvl w:val="0"/><w:ilfo w:val="3"/><wx:t wx:val="2."/></w:listPr></w:pPr>
	<w:r><w:t>{vision_points}</w:t></w:r>
	<w:r><w:br/></w:r></w:p>
	
	
	Word table looks a lot like HTML tables.
	<w:tbl>
		We start with the table properties.
		<w:tblPr>
			We could set the table width to 100% or w="5000"
			<w:tblW w:w="5000" w:type="pct"/>
			...or we could let the table width be determined automatically.
			<w:tblW w:w="0" w:type="auto"/>
			Add some thin black borders around and through the table.
			<w:tblBorders>
				<w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
				<w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
				<w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
				<w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
				<w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
				<w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
			</w:tblBorders>
			Give the cells some padding.
			<w:tblCellMar>
				<w:top w:w="108" w:type="dxa"/>
				<w:left w:w="108" w:type="dxa"/>
				<w:bottom w:w="108" w:type="dxa"/>
				<w:right w:w="108" w:type="dxa"/>
			</w:tblCellMar>
			<w:tblLook w:val="04A0"/>
		</w:tblPr>
		
		This looks like where column widths are set, but they don't seem to have much of an effect.
		<w:tblGrid>
			<w:gridCol w:w="100"/>
			<w:gridCol w:w="100"/>
		</w:tblGrid>
		
		Now build the table with table rows <w:tr>, table cells <w:tc>, and the rest of the text.
		<w:tr>
			<w:trPr>
			<w:tblCellSpacing w:w="15" w:type="dxa"/></w:trPr>
			<w:tc>
				The <a:tcW...> tag seems to be column width, but 0 is fine if you want to auto-adjust.
				<w:tcPr><w:tcW w:w="0" w:type="auto"/></w:tcPr>
				<w:p>
					<w:pPr><w:spacing w:line="264" w:line-rule="at-least"/></w:pPr>
	
					<w:r><w:rPr><w:b/></w:rPr><w:t>Services:</w:t><w:br/><w:br/></w:r>
	
					<w:r><w:rPr><w:b/></w:rPr><w:t>Bob</w:t></w:r>
					<w:r><w:t>, President</w:t><w:br/></w:r>
					<w:r><w:t>email: bob@example.com</w:t><w:br/></w:r>
					<w:r><w:t>phone: (202) 123-4567</w:t><w:br/><w:br/></w:r>
	
					<w:r><w:rPr><w:b/></w:rPr><w:t>Chris</w:t></w:r>
					<w:r><w:t>, Vice President</w:t><w:br/></w:r>
					<w:r><w:t>email: chris@example.com</w:t><w:br/></w:r>
					<w:r><w:t>phone: (202) 123-4567</w:t><w:br/><w:br/></w:r>
				</w:p>
			</w:tc>
		
			<w:tc>
				<w:tcPr><w:tcW w:w="0" w:type="auto"/></w:tcPr>
				<w:p>
					<w:pPr><w:spacing w:line="264" w:line-rule="at-least"/></w:pPr>

					<w:r><w:br/><w:br/></w:r>
	
					<w:r><w:rPr><w:b/></w:rPr><w:t>Sally</w:t></w:r>
					<w:r><w:t>, System Manager</w:t><w:br/></w:r>
					<w:r><w:t>email: sally@example.com</w:t><w:br/></w:r>
					<w:r><w:t>phone: (202) 123-4567</w:t><w:br/><w:br/></w:r>
	
					<w:r><w:rPr><w:b/></w:rPr><w:t>David</w:t></w:r>
					<w:r><w:t>, Project Manager</w:t><w:br/></w:r>
					<w:r><w:t>email: david@example.com</w:t><w:br/></w:r>
					<w:r><w:t>phone: (202) 123-4567</w:t><w:br/><w:br/></w:r>
				</w:p>
			</w:tc>
		</w:tr>
	
	</w:tbl>
	
	When comments are added, annotations will show what has been modified.  AML = annotation markup language
	<aml:annotation aml:id="19" w:type="Word.Deletion" aml:author="richard" aml:createdate="2016-09-15T09:47:00Z">
		<aml:content>
			<w:r wsp:rsidRPr="00C94B42" wsp:rsidDel="00C1680D">
				<w:rPr>
					<w:rFonts w:ascii="Arial" w:h-ansi="Arial" w:cs="Arial"/>
					<wx:font wx:val="Arial"/>
					<w:sz w:val="18"/>
					<w:sz-cs w:val="18"/>
				</w:rPr>
				<w:delText>TOTAL</w:delText>
			</w:r>
		</aml:content>
	</aml:annotation>
	
	
	Images can be stored within the file as base64 data (non-working sample).  Be sure to NOT indent the text of the base64 code.  In <v:imagedata...> tag, the wordml: value should match between the top and the bottom tag values.  In <v:shape...> tag, the id=, alt=, and o:spid= values are not necessary, style is optional but valuable, and type is required.  Code for the first image in a document has extra <v:shapetype...> code.  This extra code is not necessary for the file to work.  Going from <w:pict> straight into <w:binData...> works fine too.
	
	<w:pict>
	<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
		<v:stroke joinstyle="miter"/>
		<v:formulas>
			<v:f eqn="if lineDrawn pixelLineWidth 0"/>
			<v:f eqn="sum @0 1 0"/>
			<v:f eqn="sum 0 0 @1"/>
			<v:f eqn="prod @2 1 2"/>
			<v:f eqn="prod @3 21600 pixelWidth"/>
			<v:f eqn="prod @3 21600 pixelHeight"/>
			<v:f eqn="sum @0 0 1"/>
			<v:f eqn="prod @6 1 2"/>
			<v:f eqn="prod @7 21600 pixelWidth"/>
			<v:f eqn="sum @8 21600 0"/>
			<v:f eqn="prod @7 21600 pixelHeight"/>
			<v:f eqn="sum @10 21600 0"/>
		</v:formulas>
		<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
		<o:lock v:ext="edit" aspectratio="t"/>
	</v:shapetype>
	<w:binData w:name="wordml://03000001.png" xml:space="preserve">iVBORw0KGgoAAAANSUhEUgAAAEwAAABtCAYAAAALZ4e4AAAAAXNSR0IB2cksfwAAAAlwSFlzAAAL
EwAACxMBAJqcGAAAAXRJREFUeAHt3cEJAjEARcFEUsyWYeeWob24sIJYQN5RmJzfIQw/58zzta7h
bAvctkvhVwBYHAIwYFEg5hYGLArE3MKARYGYWxiwKBDzVfp1nLP0/9C+n+s+53js3tWT3JX6dcCA
RYGYWxiwKBBzCwMWBWJuYcCiQMwtDFgUiLmFAYsCMbcwYFEg5hYGLArE3MKARYGYWxiwKBBzCwMW
BWJuYcCiQMwtDFgUiLmFAYsCMbcwYFEg5hYGLArE3MKARYGYWxiwKBBzCwMWBWJuYcCiQMwtDFgU
iLmFAYsCMbcwYFEg5hYGLArE3MKARYGYWxiwKBBzCwMWBWJuYcCiQMwtDFgUiLmFAYsCMbcwYFEg
5hYGLArE3MKARYGYWxiwKBBzCwMWBWJuYcCiQMwtDFgUiLmFAYsCMbcwYFEg5hYGLArE3MKARYGY
WxiwKBBzC4tg0w+mTczCmtcABiwKxNzCgEWBmFsYsCgQcwsDFgVibmER7APFcQqJtEH1awAAAABJ
RU5ErkJggk==
</w:binData>
	<v:shape id="Picture 1" o:spid="_x0000_i1025" type="#_x0000_t75" alt="Macintosh HD:private:var:folders:3h:p51xk2d10zj5lndmt13h75cwf2rm7p:T:TemporaryItems:51RR4hvOTkL.BO1,204,203,200_.jpg" style="width:76pt;height:109.35pt;visibility:visible;mso-wrap-style:square">
	<v:imagedata src="wordml://03000001.png" o:title=""/>
	</v:shape>
	</w:pict>
	
	
	There may be lots of <w:rsidR> and <w:rsidP> tags, these are added by the program to track editing sessions.  They are usually omitted from training examples because they clutter the XML.
	
	<w:p><w:r><w:t>end</w:t></w:r></w:p>
	
	Section properties <w:sectPr> at the bottom of each section handles header, footer, margins, columns, and other document settings.
	<w:sectPr>
		Header <w:hdr> and footer <w:ftr> parts are usually found at the bottom of the first section <wx:sect>.
		<w:ftr w:type="odd">
		<w:p><w:pPr><w:pStyle w:val="Footer"/><w:jc w:val="right"/></w:pPr>
		<w:r><w:t>Updated: 8/20/2016</w:t></w:r></w:p>
		</w:ftr>
		Page size is 8.5x11 (12240/1440=8.5, 15840/1440=11)
		<w:pgSz w:w="12240" w:h="15840"/>
		One inch margins.
		<w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:header="720" w:footer="720" w:gutter="0"/>
		<w:cols w:space="720"/>
		<w:docGrid w:line-pitch="360"/>
	</w:sectPr>
	
Close the section
</wx:sect>

Close the body
</w:body>

Close the document
</w:wordDocument>


WordOpenXML_v1_easy

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?mso-application progid="Word.Document"?>
<w:wordDocument xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wsp="http://schemas.microsoft.com/office/word/2003/wordml/sp2" xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve">

<o:DocumentProperties>
</o:DocumentProperties>

<w:fonts>
</w:fonts>

<w:lists>
</w:lists>

<w:styles>
</w:styles>

<w:body>
<wx:sect>
	<w:p><w:r><w:t>paragraph markers</w:t></w:r></w:p>
</wx:sect>
</w:body>

</w:wordDocument>


WordOpenXML_v2_sample

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?mso-application progid="Word.Document"?>
<w:wordDocument xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wsp="http://schemas.microsoft.com/office/word/2003/wordml/sp2" xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve">
<w:ignoreSubtree w:val="http://schemas.microsoft.com/office/word/2003/wordml/sp2"/>

<o:DocumentProperties></o:DocumentProperties>

<w:fonts>
	<w:defaultFonts w:ascii="Calibri" w:fareast="Calibri" w:h-ansi="Calibri" w:cs="Times New Roman"/>
	<w:font w:name="Times New Roman">
	<w:panose-1 w:val="02020603050405020304"/>
	<w:charset w:val="00"/>
	<w:family w:val="auto"/>
	<w:pitch w:val="variable"/>
	<w:sig w:usb-0="E0002AFF" w:usb-1="C0007841" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="000001FF" w:csb-1="00000000"/>
	</w:font>
	<w:font w:name="Calibri">
	<w:panose-1 w:val="020F0502020204030204"/>
	<w:charset w:val="00"/>
	<w:family w:val="auto"/>
	<w:pitch w:val="variable"/>
	<w:sig w:usb-0="E00002FF" w:usb-1="4000ACFF" w:usb-2="00000001" w:usb-3="00000000" w:csb-0="0000019F" w:csb-1="00000000"/>
	</w:font>
</w:fonts>

<w:styles>
	<w:versionOfBuiltInStylenames w:val="8"/>
	<w:style w:type="paragraph" w:default="on" w:styleId="Normal">
	<w:name w:val="Normal"/>
	<w:rPr>
	<wx:font wx:val="Calibri"/>
	<w:sz w:val="24"/>
	<w:sz-cs w:val="24"/>
	<w:lang w:val="EN-US" w:fareast="EN-US" w:bidi="AR-SA"/>
	</w:rPr>
	</w:style>
	<w:style w:type="character" w:default="on" w:styleId="DefaultParagraphFont">
	<w:name w:val="Default Paragraph Font"/>
	</w:style>
	<w:style w:type="table" w:default="on" w:styleId="TableNormal">
	<w:name w:val="Normal Table"/>
	<wx:uiName wx:val="Table Normal"/>
	<w:rPr>
	<wx:font wx:val="Calibri"/>
	<w:lang w:val="EN-US" w:fareast="EN-US" w:bidi="AR-SA"/>
	</w:rPr>
	<w:tblPr>
	<w:tblInd w:w="0" w:type="dxa"/>
	<w:tblCellMar>
	<w:top w:w="0" w:type="dxa"/>
	<w:left w:w="108" w:type="dxa"/>
	<w:bottom w:w="0" w:type="dxa"/>
	<w:right w:w="108" w:type="dxa"/>
	</w:tblCellMar>
	</w:tblPr>
	</w:style>
	<w:style w:type="list" w:default="on" w:styleId="NoList">
	<w:name w:val="No List"/>
	</w:style>
	<w:style w:type="paragraph" w:styleId="ListParagraph">
	<w:name w:val="List Paragraph"/>
	<w:basedOn w:val="Normal"/>
	<w:rsid w:val="00A01284"/>
	<w:pPr>
	<w:ind w:left="720"/>
	<w:contextualSpacing/>
	</w:pPr>
	<w:rPr>
	<wx:font wx:val="Calibri"/>
	</w:rPr>
	</w:style>
</w:styles>

<w:docPr>
	<w:view w:val="print"/>
	<w:zoom w:percent="100"/>
	<w:doNotEmbedSystemFonts/>
	<w:proofState w:spelling="clean" w:grammar="clean"/>
	<w:defaultTabStop w:val="720"/>
	<w:punctuationKerning/>
	<w:characterSpacingControl w:val="DontCompress"/>
	<w:allowPNG/>
	<w:doNotSaveWebPagesAsSingleFile/>
	<w:pixelsPerInch w:val="96"/>
	<w:savePreviewPicture/>
	<w:validateAgainstSchema/>
	<w:saveInvalidXML w:val="off"/>
	<w:ignoreMixedContent w:val="off"/>
	<w:alwaysShowPlaceholderText w:val="off"/>
	<w:compat>
	<w:breakWrappedTables/>
	<w:snapToGridInCell/>
	<w:wrapTextWithPunct/>
	<w:useAsianBreakRules/>
	<w:dontGrowAutofit/>
	</w:compat>
</w:docPr>

<w:body>
<wx:sect>
	
	<w:p><w:r><w:t>This is normal text</w:t></w:r></w:p>
	
	<w:p><w:r><w:t>This is a normal paragraph 2</w:t></w:r></w:p>
	
	<w:p><w:r><w:t>This is a </w:t><w:tab/><w:t>tab.</w:t></w:r></w:p>
	
	<w:p><w:pPr><w:tabs><w:tab w:val="left" w:pos="2160"/></w:tabs></w:pPr><w:r>
	<w:t>This is a </w:t><w:tab/><w:t>SET tab.</w:t></w:r></w:p>
	
	<w:p>
		<w:pPr>
			<w:pStyle w:val="ListParagraph"/>
			<w:listPr>
				<w:ilvl w:val="0"/>
				<w:ilfo w:val="2"/>
				<wx:t wx:val="1."/>
				<wx:font wx:val="Times New Roman"/>
			</w:listPr>
		</w:pPr>
		<w:r><w:t>list item one</w:t></w:r>
	</w:p>
	
	<w:p>
		<w:pPr>
			<w:pStyle w:val="ListParagraph"/>
			<w:listPr>
				<w:ilvl w:val="0"/>
				<w:ilfo w:val="2"/>
				<wx:t wx:val="2."/>
				<wx:font wx:val="Times New Roman"/>
			</w:listPr>
		</w:pPr>
		<w:r><w:t>list item two</w:t></w:r>
	</w:p>
	
	<w:p><w:r><w:t>end</w:t></w:r></w:p>
	
	<w:sectPr>
		<w:pgSz w:w="12240" w:h="15840"/>
		<w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:header="720" w:footer="720" w:gutter="0"/>
		<w:cols w:space="720"/>
		<w:docGrid w:line-pitch="360"/>
	</w:sectPr>
	
</wx:sect>
</w:body>

</w:wordDocument>


zExcelOpenXML_sample

Note, my Excel code is not as well documented (yet) as my Word code.


// FILE HEADER
"<?xml version=\"1.0\"?>¶" & 
"<?mso-application progid=\"Excel.Sheet\"?>¶" & 
"<Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\"¶" & 
" xmlns:o=\"urn:schemas-microsoft-com:office:office\"¶" & 
" xmlns:x=\"urn:schemas-microsoft-com:office:excel\"¶" & 
" xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\"¶" & 
" xmlns:html=\"http://www.w3.org/TR/REC-html40\">¶"


----------------------------------



// GREEN FILE STYLE
" <Styles>¶" & 
"  <Style ss:ID=\"Default\" ss:Name=\"Normal\">¶" & 
"   <Alignment ss:Vertical=\"Bottom\"/>¶" & 
"   <Borders/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\"/>¶" & 
"   <Interior/>¶" & 
"   <NumberFormat/>¶" & 
"   <Protection/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s62\">¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\"/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s63\">¶" & 
"   <Alignment ss:Horizontal=\"Center\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\"/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s64\">¶" & 
"   <Alignment ss:Horizontal=\"Left\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\"/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s65\">¶" & 
"   <Alignment ss:Horizontal=\"Left\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\" ss:Bold=\"1\"/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s66\">¶" & 
"   <Alignment ss:Horizontal=\"Left\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\" ss:Bold=\"1\"/>¶" & 
"   <Interior/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s67\">¶" & 
"   <Alignment ss:Horizontal=\"Left\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\" ss:Bold=\"1\"/>¶" & 
"   <Interior ss:Color=\"#A2BD90\" ss:Pattern=\"Solid\"/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s68\">¶" & 
"   <Alignment ss:Horizontal=\"Center\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\"/>¶" & 
"   <NumberFormat ss:Format=\"m/d/yyyy;@\"/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s71\">¶" & 
"   <Alignment ss:Horizontal=\"Left\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\" ss:Bold=\"1\"/>¶" & 
"   <Interior ss:Color=\"#A2BD90\" ss:Pattern=\"Solid\"/>¶" & 
"   <NumberFormat ss:Format=\"&quot;$&quot;#,##0.00\"/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s73\">¶" & 
"   <Alignment ss:Horizontal=\"Left\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\" ss:Bold=\"1\"/>¶" & 
"   <Interior ss:Color=\"#A2BD90\" ss:Pattern=\"Solid\"/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s80\">¶" & 
"   <Alignment ss:Horizontal=\"Right\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\"/>¶" & 
"   <NumberFormat ss:Format=\"&quot;$&quot;#,##0.00\"/>¶" & 
"  </Style>¶" & 
" </Styles>¶"




// Basic worksheet footer
"  </Table>¶" & 
"  <WorksheetOptions xmlns=\"urn:schemas-microsoft-com:office:excel\">¶" & 
"   <PageLayoutZoom>0</PageLayoutZoom>¶" & 

// Adds Freeze Panes
"   <Selected/>¶" & 
"   <FreezePanes/>¶" & 
"   <FrozenNoSplit/>¶" & 
"   <SplitHorizontal>1</SplitHorizontal>¶" & 
"   <TopRowBottomPane>1</TopRowBottomPane>¶" & 
"   <ActivePane>2</ActivePane>¶" & 
"   <Panes>¶" & 
"    <Pane>¶" & 
"     <Number>3</Number>¶" & 
"    </Pane>¶" & 
"    <Pane>¶" & 
"     <Number>2</Number>¶" & 
"     <ActiveRow>0</ActiveRow>¶" & 
"    </Pane>¶" & 
"   </Panes>¶" & 

// Basic worksheet footer
"   <ProtectObjects>False</ProtectObjects>¶" & 
"   <ProtectScenarios>False</ProtectScenarios>¶" & 
"  </WorksheetOptions>¶" & 

// Part of the Filtered Columns
"  <AutoFilter x:Range=\"R1C1:R<row_count>C<col_count>\"¶" & 
"   xmlns=\"urn:schemas-microsoft-com:office:excel\">¶" & 
"  </AutoFilter>¶" & 

// Adds color to alternate rows
"  <ConditionalFormatting xmlns=\"urn:schemas-microsoft-com:office:excel\">¶" & 
"   <Range>R5C1:R1048576C25</Range>¶" & 
"   <Condition>¶" & 
"    <Value1>MOD(ROW(),2)=0</Value1>¶" & 
"    <Format Style='color:windowtext;background:#EBF1DE;mso-pattern:black none'/>¶" & 
"   </Condition>¶" & 
"  </ConditionalFormatting>¶" & 


// Basic worksheet footer
" </Worksheet>¶"



// File Footer
"</Workbook>¶"




-------------------------------------------------------------




// PLAIN FILE STYLE
" <Styles>¶" & 
"  <Style ss:ID=\"Default\" ss:Name=\"Normal\">¶" & 
"   <Alignment ss:Vertical=\"Bottom\"/>¶" & 
"   <Borders/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\"/>¶" & 
"   <Interior/>¶" & 
"   <NumberFormat/>¶" & 
"   <Protection/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s62\">¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\"/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s63\">¶" & 
"   <Alignment ss:Horizontal=\"Center\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\"/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s64\">¶" & 
"   <Alignment ss:Horizontal=\"Left\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\"/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s65\">¶" & 
"   <Alignment ss:Horizontal=\"Left\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\" ss:Bold=\"1\"/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s67\">¶" & 
"   <Alignment ss:Horizontal=\"Center\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\" ss:Bold=\"1\"/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s68\">¶" & 
"   <Alignment ss:Horizontal=\"Center\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\"/>¶" & 
"   <NumberFormat ss:Format=\"m/d/yyyy;@\"/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s69\">¶" & 
"   <Alignment ss:Horizontal=\"Left\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\" ss:Bold=\"1\"/>¶" & 
"   <Interior/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s73\">¶" & 
"   <Alignment ss:Horizontal=\"Left\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\" ss:Bold=\"1\"/>¶" & 
"   <Interior/>¶" & 
"  </Style>¶" & 
"  <Style ss:ID=\"s80\">¶" & 
"   <Alignment ss:Horizontal=\"Right\" ss:Vertical=\"Bottom\"/>¶" & 
"   <Font ss:FontName=\"Franklin Gothic Book\" x:Family=\"Swiss\" ss:Size=\"12\"¶" & 
"    ss:Color=\"#000000\"/>¶" & 
"   <NumberFormat ss:Format=\"&quot;$&quot;#,##0.00\"/>¶" & 
"  </Style>¶" & 
" </Styles>¶"


// Basic worksheet footer
"  </Table>¶" & 
"  <WorksheetOptions xmlns=\"urn:schemas-microsoft-com:office:excel\">¶" & 
"   <PageLayoutZoom>0</PageLayoutZoom>¶" & 

// Adds Freeze Panes
"   <Selected/>¶" & 
"   <FreezePanes/>¶" & 
"   <FrozenNoSplit/>¶" & 
"   <SplitHorizontal>1</SplitHorizontal>¶" & 
"   <TopRowBottomPane>1</TopRowBottomPane>¶" & 
"   <ActivePane>2</ActivePane>¶" & 
"   <Panes>¶" & 
"    <Pane>¶" & 
"     <Number>3</Number>¶" & 
"    </Pane>¶" & 
"    <Pane>¶" & 
"     <Number>2</Number>¶" & 
"     <ActiveRow>0</ActiveRow>¶" & 
"    </Pane>¶" & 
"   </Panes>¶" & 

// Basic worksheet footer
"   <ProtectObjects>False</ProtectObjects>¶" & 
"   <ProtectScenarios>False</ProtectScenarios>¶" & 
"  </WorksheetOptions>¶" & 

// Part of the Filtered Columns
"  <AutoFilter x:Range=\"R1C1:R<row_count>C<col_count>\"¶" & 
"   xmlns=\"urn:schemas-microsoft-com:office:excel\">¶" & 
"  </AutoFilter>¶" & 


// Basic worksheet footer
" </Worksheet>¶"


// File Footer
"</Workbook>¶"


--------------------------------------------


// TABLE HEADER

" <Worksheet ss:Name=\"<sheet_name>\">¶" & 
"  <Names>¶" & 
"   <NamedRange ss:Name=\"_FilterDatabase\" ss:RefersTo=\"=Sheet1!R4C1:R1572C25\" ss:Hidden=\"1\"/>¶" & 
"  </Names>¶" & 
"  <Table ss:ExpandedColumnCount=\"<col_count>\" ss:ExpandedRowCount=\"<row_count>\" x:FullColumns=\"1\"¶" & 
"   x:FullRows=\"1\" ss:StyleID=\"s62\" ss:DefaultRowHeight=\"15\">¶" & 
"   <Column ss:StyleID=\"s62\" ss:AutoFitWidth=\"0\" ss:Width=\"200\"/>¶" & 
"   <Column ss:StyleID=\"s63\" ss:AutoFitWidth=\"0\" ss:Width=\"60\"/>¶" & 
"   <Column ss:StyleID=\"s62\" ss:AutoFitWidth=\"0\" ss:Width=\"150\"/>¶" & 
"   <Column ss:StyleID=\"s62\" ss:AutoFitWidth=\"0\" ss:Width=\"150\"/>¶" & 
"   <Column ss:StyleID=\"s62\" ss:AutoFitWidth=\"0\" ss:Width=\"150\"/>¶" & 
"   <Column ss:StyleID=\"s62\" ss:AutoFitWidth=\"0\" ss:Width=\"90\"/>¶" & 
"   <Column ss:StyleID=\"s63\" ss:AutoFitWidth=\"0\" ss:Width=\"90\"/>¶" & 
"   <Column ss:StyleID=\"s63\" ss:AutoFitWidth=\"0\" ss:Width=\"90\"/>¶" & 
"   <Column ss:StyleID=\"s63\" ss:AutoFitWidth=\"0\" ss:Width=\"90\"/>¶" & 
"   <Column ss:StyleID=\"s62\" ss:AutoFitWidth=\"0\" ss:Width=\"90\"/>¶" & 
"   <Column ss:StyleID=\"s63\" ss:AutoFitWidth=\"0\" ss:Width=\"150\"/>¶" & 
"   <Column ss:StyleID=\"s80\" ss:AutoFitWidth=\"0\" ss:Width=\"102\"/>¶" & 
"   <Column ss:StyleID=\"s80\" ss:AutoFitWidth=\"0\" ss:Width=\"102\"/>¶" & 
"   <Column ss:StyleID=\"s80\" ss:AutoFitWidth=\"0\" ss:Width=\"102\"/>¶" & 
"   <Column ss:StyleID=\"s80\" ss:AutoFitWidth=\"0\" ss:Width=\"102\"/>¶" & 
"   <Column ss:StyleID=\"s80\" ss:AutoFitWidth=\"0\" ss:Width=\"102\"/>¶" & 
"   <Column ss:StyleID=\"s80\" ss:AutoFitWidth=\"0\" ss:Width=\"102\"/>¶" & 
"   <Column ss:StyleID=\"s80\" ss:AutoFitWidth=\"0\" ss:Width=\"102\"/>¶" & 
"   <Column ss:StyleID=\"s80\" ss:AutoFitWidth=\"0\" ss:Width=\"102\"/>¶" & 
"   <Column ss:StyleID=\"s80\" ss:AutoFitWidth=\"0\" ss:Width=\"102\"/>¶" & 
"   <Column ss:StyleID=\"s62\" ss:AutoFitWidth=\"0\" ss:Width=\"102\"/>¶" & 
"   <Column ss:StyleID=\"s62\" ss:AutoFitWidth=\"0\" ss:Width=\"102\"/>¶" & 
"   <Column ss:StyleID=\"s62\" ss:AutoFitWidth=\"0\" ss:Width=\"102\"/>¶" & 
"   <Column ss:StyleID=\"s62\" ss:AutoFitWidth=\"0\" ss:Width=\"102\"/>¶" & 
"   <Column ss:StyleID=\"s62\" ss:AutoFitWidth=\"0\" ss:Width=\"90\"/>¶"


// Table_head contains any data that goes BEFORE the column head row on the worksheet.
// Place holders <sheet_name>, <row_count> & <col_count> will be added at the end of the worksheet loop.
// <row_count> is the number of '<Column' for this worksheet.





// FILTER DATABASE
"<NamedCell ss:Name=\"_FilterDatabase\"/>"




// TABLE ROW ONE
/*
"   <Row ss:AutoFitHeight=\"0\"/>¶" & 
"   <Row ss:AutoFitHeight=\"0\">¶" & 
"    <Cell ss:StyleID=\"s65\">" & fnExcelText ( $worksheet_title ; "text" ) & "</Cell>¶" & 
"   </Row>¶" & 
"   <Row ss:AutoFitHeight=\"0\"/>¶" & 
*/
"   <Row ss:AutoFitHeight=\"0\" ss:StyleID=\"s65\">¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_01" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_02" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_03" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_04" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_05" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_06" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_07" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_08" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_09" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_10" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_11" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_12" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_13" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_14" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_15" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_16" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_17" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_18" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_19" ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell ss:StyleID=\"s67\">" & fnExcelText ( "Field_20" ; "text" ) & $filter_database & "</Cell>¶" & 
"   </Row>¶"




// TABLE ROW ONE (DISABLED)

"   <Row ss:AutoFitHeight=\"0\" ss:Height=\"15\">¶" & 
"    <Cell ss:StyleID=\"s67\"><Data ss:Type=\"String\">RecordNum</Data><NamedCell ss:Name=\"Print_Titles\"/></Cell>¶" & 
"    <Cell ss:StyleID=\"s68\"><Data ss:Type=\"String\">FileName</Data><NamedCell ss:Name=\"Print_Titles\"/></Cell>¶" & 
"    <Cell ss:StyleID=\"s69\"><Data ss:Type=\"String\">Owner</Data><NamedCell ss:Name=\"Print_Titles\"/></Cell>¶" & 
"    <Cell ss:StyleID=\"s69\"><Data ss:Type=\"String\">StreetNum</Data><NamedCell ss:Name=\"Print_Titles\"/></Cell>¶" & 
"    <Cell ss:StyleID=\"s69\"><Data ss:Type=\"String\">Street</Data><NamedCell ss:Name=\"Print_Titles\"/></Cell>¶" & 
"    <Cell ss:StyleID=\"s69\"><Data ss:Type=\"String\">City</Data><NamedCell ss:Name=\"Print_Titles\"/></Cell>¶" & 
"    <Cell ss:StyleID=\"s69\"><Data ss:Type=\"String\">State</Data><NamedCell ss:Name=\"Print_Titles\"/></Cell>¶" & 
"    <Cell ss:StyleID=\"s69\"><Data ss:Type=\"String\">ZIP</Data><NamedCell ss:Name=\"Print_Titles\"/></Cell>¶" & 
"    <Cell ss:StyleID=\"s69\"><Data ss:Type=\"String\">Phone</Data><NamedCell ss:Name=\"Print_Titles\"/></Cell>¶" & 
"    <Cell ss:StyleID=\"s69\"><Data ss:Type=\"String\">Email</Data><NamedCell ss:Name=\"Print_Titles\"/></Cell>¶" & 
"    <Cell ss:StyleID=\"s69\"><Data ss:Type=\"String\">FAX</Data><NamedCell ss:Name=\"Print_Titles\"/></Cell>¶" & 
"   </Row>"






// TABLE ROWS
$table_rows & 
"   <Row>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "date" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "number" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "number" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"    <Cell>" & fnExcelText ( Field_01 ; "text" ) & $filter_database & "</Cell>¶" & 
"   </Row>¶"