2016-06-16 6 views
0

У меня есть таблица самозагрузки отображения данных сотрудника, в том числе заработной платы ID, которые имеют данный формат: 1606.xxxxBootstrap TableExport десятичного вопрос

Вот что моя таблица выглядит следующим образом:

<table id="table_search" 
    data-toggle="table" 
    data-search="true" 
    data-show-refresh="true" 
    data-show-toggle="true" 
    data-show-columns="true" 
    data-show-export="true" 
    data-minimum-count-columns="2" 
    data-show-pagination-switch="true" 
    data-pagination="true" 
    data-page-list="[10, 25, 50, 100, ALL]" 
    data-show-footer="false" 
    data-export-data-type="all" 
    data-export-types="['excel']"> 
    <thead> 
     <tr> 
      <th data-field="id">ID</th> 
      <th data-field="payroll_id" >Payroll ID</th> 
      <th data-field="nama_karyawan">Employee Name</th> 
      <th data-field="level">Level</th> 
      <th data-field="grade">Grade</th> 
      <th data-field="title">Title</th> 
      <th data-field="lokasi">Location</th> 
      <th data-field="cost_sales">Cost Sales</th> 
      <th data-field="dept">Department</th> 
      <th data-field="div">Division</th> 
      <th data-field="dir">Directorat</th> 
      <th data-field="active_period">Active Period</th> 
     </tr> 
    </thead> 
</table> 

В таблице отображается это правильно, но когда я экспортировать его в Excel с помощью TableExport плагин она идет, как этот exported results

как вы можете видеть, как-то плагин обрабатывает его как число с десятичной, ш Именно этого я и избегаю. Я пробовал комментировать функцию parseNumber, которая может быть причиной в файле tableExport js, однако результаты всегда выводятся одинаково.

Что я делаю неправильно?

PS: Я не хочу, чтобы форматирование после экспорта файла, я хочу, чтобы он экспортировал данные как есть.

ответ

0

Вы можете использовать

... 
<td data-tableexport-msonumberformat="\@">123.450</td> 
... 

с этим tableExport.js будет использовать mso-number-format: "\@" как TD стиль при создании экспорта HTML Excel. Это приводит к форматированию ячейки как Text.

Пример: http://jsfiddle.net/uqtubq5c/1/

Вы можете также использовать

... 
<td data-tableexport-msonumberformat="0.000">123.450</td> 
... 

Это приводит к числовому формату 0.000 в Excel. Таким образом, содержимое ячейки остается номером и будет использоваться в расчетах далее. Text может привести к проблемам при использовании в расчетах.


Если вы не можете установить собственные data-tableexport-msonumberformat атрибуты TD элементов, то вы могли бы расширить tableExport.jquery.plugin.

В tableExport.js есть:

... 
     var defaults = { 
     onMsoNumberFormat: onMsoNumberFormat, 
... 

onMsoNumberFormat должна быть функцией.

Если функция onMsoNumberFormat, как:

onMsoNumberFormat = function(cell, row, col) { 
if (row > 0 && col == 2) { 
    return "#\\,##0\\.00"; 
} 
if (row > 0 && col == 3) { 
    return "\\@"; 
} 
}; 

затем третий столбец (столбец == 2) из ​​строки 2 (строка> 0) вверх получит style="mso-number-format:#\,##0\.00" и четвертый столбец (столбец == 3) из строки 2 (строка> 0) вверх будет style="mso-number-format:\@". @ - Text формат.

Пример: http://jsfiddle.net/uqtubq5c/3/

+0

Я забыл упомянуть, что я заполнение таблицы, используя функцию обратного вызова в формате JSON. Я не могу добавить свойство к td, потому что я только определяю th .. (я уже редактировал мой вопрос).Я попытался использовать метод attr() jQuery для успеха обратного вызова, но я не могу заставить его работать – Shera

+0

См. Мои приложения. –

+0

Вы спасатель жизни! Эта скрипка должна быть на странице примера начальной загрузки – Shera

Смежные вопросы