2015-06-11 32 views
4

我使用下面的插件在XLS和WORD中導出表格數據。但是,當我導出表格數據時,它不包括表格標題行。那麼有沒有辦法在導出的數據中包含字段?如何在導出html表格數據中包含<th>行?

<li> 
<a href="#" onClick ="$('#datawtable').tableExport({type:'excel',escape:'false'});"> 
<img src='icons/xls.png' width='24px'> XLS 
</a> 
</li> 
<li> 
<a href="#" onClick ="$('#datawtable').tableExport({type:'doc',escape:'false'});"> 
<img src='icons/word.png' width='24px'> Word 
</a> 
</li> 

<script type="text/javascript" src="js/tableExport.js"></script> 
<script type="text/javascript" src="js/jquery.base64.js"></script> 
<script type="text/javascript" src="js/html2canvas.js"></script> 

HTML表:

<table class="draw_table" id="datawtable" border="1" width="100%" cellspacing="0" cellpadding="0"> 
     <tr> 
      <th> 
       <a href="disdept.php?sort_element=dept_name&sort_type=<?php echo 
        ($sort_element == "dept_name" && $sort_type == "asc") ? "desc" : "asc"; ?>">Department 
        <?php if ($sort_element == "dept_name") { if($sort_type == "desc") { ?> 
        <img class="sorting" src="images2/downarrow.png" alt="asc"> 
        <?php } else { ?> 
        <img class="sorting" src="images2/uparrow.png" alt="desc"> 
        <?php } } ?> 
       </a> 
      </th> 
      <th >Description</th> 
      <th >Options</th> 
     </tr> 
+0

@jameslafferty:我看過你的解決方案爲http://計算器。 com/questions/20216495/jquery-export-to-excel-include-html-th-rows?rq = 1你能看到這個嗎? –

+0

@Rohit Arora:你能幫我解決這個問題嗎? –

+0

我認爲@Sachin是對的,你沒有遵循HTML結構,因爲在插件中添加th的代碼已經存在。 –

回答

2

您的表格正確,但您缺少<thead><tbody>標籤。您的Html應該如下所示,您應該在標題中添加標記併爲其他行添加<tbody>標記。希望這會讓我們更清楚:

<table class="draw_table" id="datawtable" border="1" width="100%" cellspacing="0" cellpadding="0"> 
    <thead> // Here we have added a <thead> tag (For headers) 
     <tr> 
      <th> 
       <a href="disdept.php?sort_element=dept_name&sort_type=<?php echo 
        ($sort_element == "dept_name" && $sort_type == "asc") ? "desc" : "asc"; ?>">Department 
        <?php if ($sort_element == "dept_name") { if($sort_type == "desc") { ?> 
        <img class="sorting" src="images2/downarrow.png" alt="asc"> 
        <?php } else { ?> 
        <img class="sorting" src="images2/uparrow.png" alt="desc"> 
        <?php } } ?> 
       </a> 
      </th> 
      <th >Description</th> 
      <th >Options</th> 
     </tr> 
</thead> 
    <tbody> // Here we have added a <tbody> tag 
    <tr> 
     <td> 
     </td> 
     </tr> 
    </tbody> 
</table> 

因爲根據插件的代碼,它選擇查找<thead>,然後<tr>,然後頭<th><tbody>,然後<tr>,然後數據行<td>

編輯1:

忽略任何你列的,只是通過其指數ignoreColumn參數是這樣的:

$('#tableID').tableExport({ 
    type:'pdf', 
    escape:'false', 
    ignoreColumn: [2,3] // here i have ignored 2nd and 3rd column 
}); 
+0

謝謝冠軍..!但我的問題是,我不想包括'選項'列,因爲我在其他表中使用這個插件也有一些表沒有'選項'字段,所以如何實現這一點。我也爲此嘗試,但從你的也很有幫助。 –

+0

歡迎,所以你想忽略任何列?看看我的新編輯。希望對你有效。 –

1

在下面一行tableexport.js包括表Excel和MSWORD航向,所以沒有什麼錯tableexport.js

$(el).find('thead').find('tr').each(function() { 
        excel += "<tr>"; 
        $(this).find('th').each(function (index, data) { 
         if ($(this).css('display') != 'none') { 
          if (defaults.ignoreColumn.indexOf(index) == -1) { 
           excel += "<td>" + parseString($(this)) + "</td>"; 
          } 
         } 
        }); 
        excel += '</tr>'; 

       }); 

請確保你的html必須遵循下面的HTML結構

<table id="tbData" class="table table-striped table-bordered table-hover dataTable no-footer" role="grid" aria-describedby="tbData_info"> 
            <thead> 
             <tr> 
              <th> Column name 1</th> 
              <th>Company Name 2 
              </th> 
              <th> 
               Column name 3 
              </th> 
              <th>Column name 4</th> 
              <th></th> 
             </tr> 
            </thead> 

            <tbody > 
            </tbody> 
           </table> 
+0

請告訴我我的HTML表出現了什麼問題,請參閱我編輯的問題。 –

相關問題