OpenTBS/PHP/Excel文件损坏-在同一开始标记或空元素标记中,属性名称不能出现多次

OpenTBS/PHP/Excel文件损坏-在同一开始标记或空元素标记中,属性名称不能出现多次,php,xml,excel,opentbs,Php,Xml,Excel,Opentbs,我有一个PHP中的Excel生成脚本,可以在原始应用程序中生成Excel文件。使用第二个应用程序,我根本无法生成Excel文件 我得到的错误是: 替换的零件:/xl/worksheets/sheet1.xml带有xml错误的零件。不 属性名称可能在同一开始标记中出现多次,或者 空元素标记。第2行,第1245列 为什么会出现此错误?如何解决此问题 PHP代码段 <?php //session_start(); require_once(dirname(__FI

我有一个PHP中的Excel生成脚本,可以在原始应用程序中生成Excel文件。使用第二个应用程序,我根本无法生成Excel文件

我得到的错误是:

替换的零件:/xl/worksheets/sheet1.xml带有xml错误的零件。不 属性名称可能在同一开始标记中出现多次,或者 空元素标记。第2行,第1245列

为什么会出现此错误?如何解决此问题

PHP代码段

<?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.");
        }
?>
插件(OPENTBS_DEBUG_INFO,true);//显示有关文档的信息,然后退出。
if(true | | isset($_POST['debug'])&($_POST['debug']=='show'))$TBS->Plugin(OPENTBS_debug_XML_show);//通知TBS在合并文档时显示信息。没有出口。
// --------------------------------------------
//模板上的合并和其他操作
// --------------------------------------------
$manageActionItems=新的manageActionItems(数组(),数组(),$会话['ProjectID']);
$actionItems=$manageActionItems->getAllActionItems();
$manageCategories=新的manageCategories();
$data=array();
foreach($actionItems作为$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'];
数组\u数据,数组(
'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,
“转让人”=>$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();
阵列\u推送($类别名称,阵列(
'CategoryName'=>$manageCategories->getCategoryName('1'),
'Category2Name'=>$manageCategories->getCategoryName('2'),
'Category3Name'=>$manageCategories->getCategoryName('3'),
'Category4Name'=>$manageCategories->getCategoryName('4')
));
$TBS->MergeBlock('a',$data);
$TBS->MergeBlock('b',$categoryNames);
$manageProjectName=新的ManageProjects();
$project=array('ProjectName'=>$manageProjectName->getProjects());
$TBS->MergeField('p',$project);
//定义输出文件的名称
$save_-as=(isset($_-POST['save_-as'])&(trim($_-POST['save_-as'])!='')和($_-SERVER['SERVER_-NAME']='localhost')?修剪($_POST['save_as']):'';
$output_file_name=str_replace('.',''.''.'日期('Y-m-d')。$save_as'.','ActionItemSummaryReport.xlsx');
如果($save_as===''){
//将结果输出为可下载文件(仅流式传输,服务器中未保存任何数据)
$TBS->Show(OPENTBS_下载,$output_文件名);//还合并所有[onshow]自动字段。
//确保不再进行输出,否则下载文件会被额外数据损坏。
退出();
}否则{
//将结果输出为服务器上的文件。
$TBS->Show(OPENTBS_FILE,$output_FILE_name);//还合并所有[onshow]自动字段。
//脚本可以继续。
退出(“已创建文件[$output\u File\u name]”);
}
?>
如果有帮助,这里是我的合并输出

* 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>
*OPENTBS调试模式:如果单词OPENTBS前左侧的星号(*)不是此页面的第一个字符,则
使用OPENTBS_下载选项时,合并的文档将被损坏。如果有PHP错误消息,则必须修复它。
如果它们是空格、换行符或其他意外字符,则必须检查代码以避免它们。
------------------------------
信息
-------------
 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>