Search code examples
phpxmlexcelopentbs

OpenTBS / PHP / Excel File Corruption - No attribute name may appear more than once in the same start tag or empty element tag


I have a Excel generation script in PHP that works to generate an Excel file in an original application. With a second application I can not get the Excel file to generate at all.

The error I get is:

Replaced Part: /xl/worksheets/sheet1.xml part with XML error. No attribute name may appear more than once in the same start tag or empty element tag. Line 2, column 1245.

Why am I getting this error and how do I resolve this?

PHP Snippet

<?php
        //session_start();
        require_once(dirname(__FILE__).'/../../session.php');
        require_once(dirname(__FILE__).'/../../shared/database/database.php');
        require_once(dirname(__FILE__).'/../../shared/scripts/userManager.php');
        require_once(dirname(__FILE__).'/../../shared/database/grid.php');
        require_once(dirname(__FILE__).'/../../shared/lib/opentbs/tbs_class.php'); // Load the TinyButStrong template engine
        require_once(dirname(__FILE__).'/../../shared/lib/opentbs/tbs_plugin_opentbs.php'); // Load the OpenTBS plugin
        require_once(dirname(__FILE__).'/../actionitems/manageActionItems.php');
        require_once(dirname(__FILE__).'/../../shared/scripts/manageProjects.php');
        require_once(dirname(__FILE__).'/../../adminpanel/categories/manageCategories.php');

        // Initialize the TBS instance
        $TBS = new clsTinyButStrong(); // new instance of TBS
        $TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN); // load the OpenTBS plugin

        // -----------------
        // Load the template
        // -----------------

        $template = 'ActionItemSummaryReport.xlsx';
        $TBS->LoadTemplate($template, OPENTBS_ALREADY_UTF8); // Also merge some [onload] automatic fields (depends of the type of document).

        // ----------------------
        // Debug mode of the demo
        // ----------------------
        if (true || isset($_POST['debug']) && ($_POST['debug']=='current')) $TBS->Plugin(OPENTBS_DEBUG_XML_CURRENT, true); // Display the intented XML of the current sub-file, and exit.
        if (true || isset($_POST['debug']) && ($_POST['debug']=='info'))    $TBS->Plugin(OPENTBS_DEBUG_INFO, true); // Display information about the document, and exit.
        if (true || isset($_POST['debug']) && ($_POST['debug']=='show'))    $TBS->Plugin(OPENTBS_DEBUG_XML_SHOW); // Tells TBS to display information when the document is merged. No exit.

        // --------------------------------------------
        // Merging and other operations on the template
        // --------------------------------------------
        $manageActionItems = new ManageActionItems(array(), array(), $_SESSION['ProjectID']);
        $actionItems = $manageActionItems->getAllActionItems();
        $manageCategories = new ManageCategories();
        $data = array();


        foreach($actionItems as $actionItem)
        {
                $actionItemID = $actionItem['ActionItemID'];
                $actionItemTitle = $actionItem['ActionItemTitle'];
                $actionItemStatement = $actionItem['ActionItemStatement'];
                $ownerLastFirst = $manageActionItems->getUser($actionItem['OwnerID']);

                $assignedDate  = $manageActionItems->formatDate($actionItem['AssignedDate']);
                $originalDueDate  = $manageActionItems->formatDate($actionItem['DueDate']);
                $ecd = $manageActionItems->formatDate($actionItem['ECD']);
                $closureDate = $manageActionItems->formatDate($actionItem['ClosedDate']);
                $completionDate = $manageActionItems->formatDate($actionItem['CompletionDate']);

                $closureCriteria = $actionItem['ClosureCriteria'];

                $category1 = $actionItem['Category1'];
                $category2 = $actionItem['Category2'];

                $category3 = $actionItem['Category3'];
                $category4 = $actionItem['Category4'];
                $notes = $actionItem['Notes'];

                $altOwner = $actionItem['AltOwner'];
                $criticality = $actionItem['Criticality'];
                $assignor = $actionItem['Assignor'];


                array_push($data, array(
                    'ActionItemID' => $actionItemID,
                    'ActionItemTitle' => $actionItemTitle,
                    'AssignedDate' => str_replace('00/00/0000', "", $assignedDate),
                    'DueDate' => str_replace('00/00/0000', "", $originalDueDate),
                    'ECD' => str_replace('00/00/0000', "", $ecd),
                    'Owner' => $ownerLastFirst,
                    'ClosedDate' => str_replace('00/00/0000', "", $closureDate),
                    'CompletionDate' => str_replace('00/00/0000', "", $completionDate),
                    'Criticality' => $criticality,
                    'Assignor' => $assignor,
                    'AltOwner' => $altOwner,
                    'Category1' => $manageCategories->getCategoryValue($category1),
                    'Category2' => $manageCategories->getCategoryValue($category2),
                    'Category3' =>$manageCategories->getCategoryValue($category3),
                    'Category4' => $manageCategories->getCategoryValue($category4),
                    'Notes' => $notes
                    //'ActionItemStatement' => $actionItemStatement,
                    //'ClosureCriteria' => $closureCriteria,
                    //'ClosureStatement' => ''
                ));
        }

        $categoryNames  = array();
        array_push($categoryNames, array(
        'Category1Name' => $manageCategories->getCategoryName('1'),
        'Category2Name' => $manageCategories->getCategoryName('2'),
        'Category3Name' => $manageCategories->getCategoryName('3'),
        'Category4Name' => $manageCategories->getCategoryName('4')
         ));

        $TBS->MergeBlock('a', $data);
        $TBS->MergeBlock('b', $categoryNames);

        $manageProjectName = new ManageProjects();
        $project = array('ProjectName' => $manageProjectName->getProjects());
        $TBS->MergeField('p', $project);


    // Define the name of the output file
        $save_as = (isset($_POST['save_as']) && (trim($_POST['save_as'])!=='') && ($_SERVER['SERVER_NAME']=='localhost')) ? trim($_POST['save_as']) : '';
        $output_file_name = str_replace('.', '_'.date('Y-m-d').$save_as.'.', 'ActionItemSummaryReport.xlsx');
        if ($save_as==='') {
            // Output the result as a downloadable file (only streaming, no data saved in the server)
            $TBS->Show(OPENTBS_DOWNLOAD, $output_file_name); // Also merges all [onshow] automatic fields.
            // Be sure that no more output is done, otherwise the download file is corrupted with extra data.
            exit();
        } else {
            // Output the result as a file on the server.
            $TBS->Show(OPENTBS_FILE, $output_file_name); // Also merges all [onshow] automatic fields.
            // The script can continue.
            exit("File [$output_file_name] has been created.");
        }
?>

If it helps here is my merged output.

* OPENTBS DEBUG MODE: if the star, (*) on the left before the word OPENTBS, is not the very first character of this page, then your
merged Document will be corrupted when you use the OPENTBS_DOWNLOAD option. If there is a PHP error message, then you have to fix it.
If they are blank spaces, line beaks, or other unexpected characters, then you have to check your code in order to avoid them.

------------------------------
INFORMATION
------------------------------
* Debug command: OPENTBS_DEBUG_XML_CURRENT
* OpenTBS version: 1.9.5
* TinyButStrong version: 3.10.1
* PHP version: 5.5.12YES
* Opened document: ActionItemSummaryReport.xlsx
* Activated features for document type: openxml/xlsx
* Deleted files in the archive:
  - xl/calcChain.xml
* Added files in the archive: none
* Modified files in the archive:
  - xl/_rels/workbook.xml.rels
  - xl/worksheets/sheet1.xml

------------------------------
File merged with OpenTBS (XML reformated for debuging only): 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="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml"/>
 <Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet2.xml"/>
 <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/>
 <Relationship Id="rId5" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings" Target="sharedStrings.xml"/>
 <Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>
</Relationships>
------------------------------
File merged with OpenTBS (XML reformated for debuging only): xl/worksheets/sheet1.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:P107"/>
 <sheetViews>
  <sheetView tabSelected="1" zoomScaleNormal="100" workbookViewId="0">
   <pane ySplit="2" topLeftCell="A3" activePane="bottomLeft" state="frozen"/>
   <selection pane="bottomLeft" sqref="A1:A1048576"/>
  </sheetView>
 </sheetViews>
 <sheetFormatPr defaultColWidth="11.42578125" defaultRowHeight="15" x14ac:dyDescent="0.25"/>
 <cols>
  <col min="1" max="1" width="14.7109375" hidden="1" customWidth="1"/>
  <col min="2" max="3" width="14.7109375" customWidth="1"/>
  <col min="4" max="4" width="14.7109375" style="10" customWidth="1"/>
  <col min="5" max="6" width="13.5703125" style="10" customWidth="1"/>
  <col min="7" max="8" width="16" style="10" customWidth="1"/>
  <col min="9" max="9" width="12" customWidth="1"/>
  <col min="10" max="14" width="14.7109375" customWidth="1"/>
  <col min="16" max="16" width="20.85546875" bestFit="1" customWidth="1"/>
 </cols>
 <sheetData>
  <row r="1" spans="1:16" x14ac:dyDescent="0.25">
   <c r="B1" s="6" t="s">
    <v>
     32
    </v>
   </c>
  </row>
  <row r="2" spans="1:16" s="6" customFormat="1" x14ac:dyDescent="0.25">
   <c r="A2" s="7" t="s">
    <v>
     1
    </v>
   </c>
   <c r="B2" s="7" t="s">
    <v>
     13
    </v>
   </c>
   <c r="C2" s="7" t="s">
    <v>
     23
    </v>
   </c>
   <c r="D2" s="9" t="s">
    <v>
     4
    </v>
   </c>
   <c r="E2" s="9" t="s">
    <v>
     5
    </v>
   </c>
   <c r="F2" s="9" t="s">
    <v>
     2
    </v>
   </c>
   <c r="G2" s="9" t="s">
    <v>
     18
    </v>
   </c>
   <c r="H2" s="9" t="s">
    <v>
     6
    </v>
   </c>
   <c r="I2" s="7" t="s">
    <v>
     20
    </v>
   </c>
   <c r="J2" s="7" t="s">
    <v>
     7
    </v>
   </c>
   <c r="K2" s="7" t="s">
    <v>
     9
    </v>
   </c>
   <c r="L2" s="7" t="s">
    <v>
     11
    </v>
   </c>
   <c r="M2" s="7" t="s">
    <v>
     28
    </v>
   </c>
   <c r="N2" s="7" t="s">
    <v>
     29
    </v>
   </c>
   <c r="O2" s="7" t="s">
    <v>
     30
    </v>
   </c>
   <c r="P2" s="7" t="s">
    <v>
     31
    </v>
   </c>
  </row>
  <row r="3" spans="1:16" s="3" customFormat="1" x14ac:dyDescent="0.25">
   <c r="A3" s="1" t="s">
    <v>
     3
    </v>
   </c>
   <c r="B3" s="1" t="e">
    <f>
     VALUE(A:A)
    </f>
    <v>
     #VALUE!
    </v>
   </c>
   <c r="C3" s="1" t="s">
    <v>
     22
    </v>
   </c>
   <c r="D3" s="8" t="s">
    <v>
     14
    </v>
   </c>
   <c r="E3" s="8" t="s">
    <v>
     15
    </v>
   </c>
   <c r="F3" s="8" t="s">
    <v>
     16
    </v>
   </c>
   <c r="G3" s="8" t="s">
    <v>
     19
    </v>
   </c>
   <c r="H3" s="8" t="s">
    <v>
     17
    </v>
   </c>
   <c r="I3" s="8" t="s">
    <v>
     21
    </v>
   </c>
   <c r="J3" s="1" t="s">
    <v>
     8
    </v>
   </c>
   <c r="K3" s="1" t="s">
    <v>
     10
    </v>
   </c>
   <c r="L3" s="2" t="s">
    <v>
     12
    </v>
   </c>
   <c r="M3" s="2" t="s">
    <v>
     24
    </v>
   </c>
   <c r="N3" s="2" t="s">
    <v>
     25
    </v>
   </c>
   <c r="O3" s="1" t="s">
    <v>
     26
    </v>
   </c>
   <c r="P3" s="1" t="s">
    <v>
     27
    </v>
   </c>
  </row>
  <row r="4" spans="1:16" x14ac:dyDescent="0.25">
   <c r="B4" s="5"/>
  </row>
  <row r="5" spans="1:16" x14ac:dyDescent="0.25">
   <c r="B5" s="5"/>
  </row>
  <row r="6" spans="1:16" x14ac:dyDescent="0.25">
   <c r="B6" s="5"/>
  </row>
  <row r="7" spans="1:16" x14ac:dyDescent="0.25">
   <c r="B7" s="5"/>
  </row>
  <row r="8" spans="1:16" x14ac:dyDescent="0.25">
   <c r="B8" s="5"/>
  </row>
  <row r="9" spans="1:16" x14ac:dyDescent="0.25">
   <c r="B9" s="5"/>
  </row>
  <row r="10" spans="1:16" x14ac:dyDescent="0.25">
   <c r="B10" s="5"/>
  </row>
  <row r="11" spans="1:16" x14ac:dyDescent="0.25">
   <c r="B11" s="5"/>
  </row>
  <row r="12" spans="1:16" x14ac:dyDescent="0.25">
   <c r="B12" s="5"/>
  </row>
  <row r="13" spans="1:16" x14ac:dyDescent="0.25">
   <c r="B13" s="5"/>
  </row>
  <row r="14" spans="1:16" x14ac:dyDescent="0.25">
   <c r="B14" s="5"/>
  </row>
  <row r="15" spans="1:16" x14ac:dyDescent="0.25">
   <c r="B15" s="5"/>
  </row>
  <row r="16" spans="1:16" x14ac:dyDescent="0.25">
   <c r="B16" s="5"/>
  </row>
  <row r="17" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B17" s="5"/>
  </row>
  <row r="18" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B18" s="5"/>
  </row>
  <row r="19" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B19" s="5"/>
  </row>
  <row r="20" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B20" s="5"/>
  </row>
  <row r="21" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B21" s="5"/>
  </row>
  <row r="22" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B22" s="5"/>
  </row>
  <row r="23" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B23" s="5"/>
  </row>
  <row r="24" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B24" s="5"/>
  </row>
  <row r="25" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B25" s="5"/>
  </row>
  <row r="26" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B26" s="5"/>
  </row>
  <row r="27" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B27" s="5"/>
  </row>
  <row r="28" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B28" s="5"/>
  </row>
  <row r="29" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B29" s="5"/>
  </row>
  <row r="30" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B30" s="5"/>
  </row>
  <row r="31" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B31" s="5"/>
  </row>
  <row r="32" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B32" s="5"/>
  </row>
  <row r="33" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B33" s="5"/>
  </row>
  <row r="34" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B34" s="5"/>
  </row>
  <row r="35" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B35" s="5"/>
  </row>
  <row r="36" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B36" s="5"/>
  </row>
  <row r="37" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B37" s="5"/>
  </row>
  <row r="38" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B38" s="5"/>
  </row>
  <row r="39" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B39" s="5"/>
  </row>
  <row r="40" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B40" s="5"/>
  </row>
  <row r="41" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B41" s="5"/>
  </row>
  <row r="42" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B42" s="4"/>
  </row>
  <row r="43" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B43" s="4"/>
  </row>
  <row r="44" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B44" s="4"/>
  </row>
  <row r="45" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B45" s="4"/>
  </row>
  <row r="46" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B46" s="4"/>
  </row>
  <row r="47" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B47" s="4"/>
  </row>
  <row r="48" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B48" s="4"/>
  </row>
  <row r="49" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B49" s="4"/>
  </row>
  <row r="50" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B50" s="4"/>
  </row>
  <row r="51" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B51" s="4"/>
  </row>
  <row r="52" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B52" s="4"/>
  </row>
  <row r="53" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B53" s="4"/>
  </row>
  <row r="54" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B54" s="4"/>
  </row>
  <row r="55" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B55" s="4"/>
  </row>
  <row r="56" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B56" s="4"/>
  </row>
  <row r="57" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B57" s="4"/>
  </row>
  <row r="58" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B58" s="4"/>
  </row>
  <row r="59" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B59" s="4"/>
  </row>
  <row r="60" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B60" s="4"/>
  </row>
  <row r="61" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B61" s="4"/>
  </row>
  <row r="62" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B62" s="4"/>
  </row>
  <row r="63" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B63" s="4"/>
  </row>
  <row r="64" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B64" s="4"/>
  </row>
  <row r="65" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B65" s="4"/>
  </row>
  <row r="66" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B66" s="4"/>
  </row>
  <row r="67" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B67" s="4"/>
  </row>
  <row r="68" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B68" s="4"/>
  </row>
  <row r="69" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B69" s="4"/>
  </row>
  <row r="70" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B70" s="4"/>
  </row>
  <row r="71" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B71" s="4"/>
  </row>
  <row r="72" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B72" s="4"/>
  </row>
  <row r="73" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B73" s="4"/>
  </row>
  <row r="74" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B74" s="4"/>
  </row>
  <row r="75" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B75" s="4"/>
  </row>
  <row r="76" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B76" s="4"/>
  </row>
  <row r="77" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B77" s="4"/>
  </row>
  <row r="78" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B78" s="4"/>
  </row>
  <row r="79" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B79" s="4"/>
  </row>
  <row r="80" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B80" s="4"/>
  </row>
  <row r="81" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B81" s="4"/>
  </row>
  <row r="82" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B82" s="4"/>
  </row>
  <row r="83" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B83" s="4"/>
  </row>
  <row r="84" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B84" s="4"/>
  </row>
  <row r="85" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B85" s="4"/>
  </row>
  <row r="86" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B86" s="4"/>
  </row>
  <row r="87" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B87" s="4"/>
  </row>
  <row r="88" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B88" s="4"/>
  </row>
  <row r="89" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B89" s="4"/>
  </row>
  <row r="90" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B90" s="4"/>
  </row>
  <row r="91" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B91" s="4"/>
  </row>
  <row r="92" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B92" s="4"/>
  </row>
  <row r="93" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B93" s="4"/>
  </row>
  <row r="94" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B94" s="4"/>
  </row>
  <row r="95" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B95" s="4"/>
  </row>
  <row r="96" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B96" s="4"/>
  </row>
  <row r="97" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B97" s="4"/>
  </row>
  <row r="98" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B98" s="4"/>
  </row>
  <row r="99" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B99" s="4"/>
  </row>
  <row r="100" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B100" s="4"/>
  </row>
  <row r="101" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B101" s="4"/>
  </row>
  <row r="102" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B102" s="4"/>
  </row>
  <row r="103" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B103" s="4"/>
  </row>
  <row r="104" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B104" s="4"/>
  </row>
  <row r="105" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B105" s="4"/>
  </row>
  <row r="106" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B106" s="4"/>
  </row>
  <row r="107" spans="2:2" x14ac:dyDescent="0.25">
   <c r="B107" s="4"/>
  </row>
 </sheetData>
 <autoFilter ref="A2:P2"/>
 <phoneticPr fontId="1" type="noConversion"/>
 <pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
 <pageSetup paperSize="9" orientation="portrait" r:id="rId1"/>
</worksheet>

Edit

This is what the output is supposed to look like. My sharedStrings appears below but not above.

Why is sharedStrings.xml not showing above?

 File merged with OpenTBS (XML reformated for debuging only): xl/sharedStrings.xml
    ------------------------------
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="32" uniqueCount="32">
     <si>
      <t>
       [p.ProjectName]
      </t>
     </si>
     <si>
      <t>
       ID
      </t>
     </si>
     <si>
      <t>
       ActionItemID
      </t>
     </si>
     <si>
      <t>
       Action Item Title
      </t>
     </si>
     <si>
      <t>
       Assigned Date
      </t>
     </si>
     <si>
      <t>
       Due Date
      </t>
     </si>
     <si>
      <t>



  ECD
  </t>
 </si>
 <si>
  <t>
   Completion Date
  </t>
 </si>
 <si>
  <t>
   Closed Date
  </t>
 </si>
 <si>
  <t>
   Owner
  </t>
 </si>
 <si>
  <t>
   Criticality
  </t>
 </si>
 <si>
  <t>
   Assignor
  </t>
 </si>
 <si>
  <t>
   Alt Owner
  </t>
 </si>
 <si>
  <t>
   [b.Category1Name]
  </t>
 </si>
 <si>
  <t>
   [b.Category2Name]
  </t>
 </si>
 <si>
  <t>
   [b.Category3Name]
  </t>
 </si>
 <si>
  <t>
   [b.Category4Name]
  </t>
 </si>
 <si>
  <t>
   [a.ActionItemID;block=tbs:row]
  </t>
 </si>
 <si>
  <t>
   [a.ActionItemTitle]
  </t>
 </si>
 <si>
  <t>
   [a.AssignedDate;ope=tbs:date]
  </t>
 </si>
 <si>
  <t>
   [a.DueDate;ope=tbs:date]
  </t>
 </si>
 <si>
  <t>
   [a.ECD;ope=tbs:date]
  </t>
 </si>
 <si>
  <t>
   [a.CompletionDate;ope=tbs:date]
  </t>
 </si>
 <si>
  <t>
   [a.ClosedDate;ope=tbs:date]
  </t>
 </si>
 <si>
  <t>
   [a.Owner]
  </t>
 </si>
 <si>
  <t>
   [a.Criticality]
  </t>
 </si>
 <si>
  <t>
   [a.Assignor]
  </t>
 </si>
 <si>
  <t>
   [a.AltOwner]
  </t>
 </si>
 <si>
  <t>
   [a.Category1]
  </t>
 </si>
 <si>
  <t>
   [a.Category2]
  </t>
 </si>
 <si>
  <t>
   [a.Category3]
  </t>
 </si>
 <si>
  <t>
   [a.Category4]
  </t>
 </si>
</sst>

Solution

  • After trying the latest version I was able to get the Excel script to work. An upgrade from 1.9.5 to 1.9.6 was the solution.