2016-03-03 35 views
0

單細胞我試圖保持其出口與DataTables擅長當HTML表<br>作出換行符。
我按照他們的指導,用正則表達式替換某些東西:DataTables find and replace during export出口價值與換行到Excel中使用jQuery數據表2016

我能夠替代的東西沒有問題。但我無法用換行符替換<br>,這些換行符可以使同一單元格中的內容保持其換行符。

這是我的JS:

$(document).ready(function() { 

var fixNewLine = { 
     exportOptions: { 
      format: { 
       body: function (data, column, row) { 
        // Strip $ from salary column to make it numeric 
        return column === 5 ? 
// THIS WORKS:   data.replace(/test/ig, "blablabla"): 
         data.replace(/<br\s*\/?>/ig, '"'+"\r\n"+'"') : 
         data; 
       } 
      } 
     } 
    }; 


    $('#table2excel').DataTable({ 
     dom: 'Bfrtip', 
     buttons:[ 
      $.extend(true, {}, fixNewLine, { 
       extend: 'copyHtml5' 
      }), 
      $.extend(true, {}, fixNewLine, { 
       extend: 'excelHtml5' 
      }), 
      $.extend(true, {}, fixNewLine, { 
       extend: 'pdfHtml5' 
      }) 
     ] 

    }); 
}); 

問題就出在這行:

data.replace(/<br\s*\/?>/ig, '"'+"\r\n"+'"') : 

它獲取只有一對" "而不是實際的換行符保存在Excel中。 注意,這也不起作用:

data.replace(/<br\s*\/?>/ig, "\r\n"): 

有什麼建議?

有一個類似的線程在這裏:Export value with Linebreaks into single cell in Excel. jQuery Datatables 但它已經過時,因爲它是一歲,已經有更新的數據表和「TableTools」已取代「按鈕」。

回答

2

正確答案是替換它們:

data.replace(/<br\s*\/?>/ig, "\n") : 

但是,你需要按「自動換行」按鈕,在打開時excel。 如果有人知道自動包裝的方式,請告訴我。

1

的替換功能內置於JavaScript的。也許你想刪除報價?

在JavaScript解釋

data.replace(/<br\s*\/?>/ig, "\r\n")

爲我工作。

它可能是你格式化函數的調用者刪除換行和用空格

+0

感謝。我嘗試過,但仍然沒有線路。 「我的格式化的來電者」是什麼意思? – mesqueeb

+0

顯然它只適用於「\ n」。但是,我需要按下excel中的「show linebreaks」按鈕!我仍然需要找到解決這個問題的方法。 – mesqueeb

+0

這似乎是正確的答案 - 只有通過「\ n」替換爲「\ r \ n」你的變化不大。你爲什麼不讓@Chris糾正這個問題並將其標記爲正確? – leole

相關問題