У меня есть таблица начальной загрузки, отображающая данные о сотрудниках, включая идентификатор платежной ведомости, который имеет данный формат: 1606.xxxx
Вот как выглядит мой стол:
<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 плагин идет так
экспортированные результаты
Как видите, плагин как-то воспринимает его как число с десятичной дробью, чего я и избегаю. Я попытался прокомментировать функцию parseNumber, которая может быть причиной в js-файле tableExport, однако результаты всегда получаются одинаковыми
Что я делаю неправильно ?
PS: Я не хочу форматирования после экспорта файла, я хочу, чтобы он экспортировал данные как есть.
Вы могли бы использовать
...
<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 "\\@";
}
};
тогда третий столбец (col == 2) из строки 2 (строка> 0) и выше получит style="mso-number-format:#\,##0\.00"
и четвертый столбец (col == 3) из строки 2 (строка> 0) и выше получит style="mso-number-format:\@"
, @
является Text
формат.
Пример:
http://jsfiddle.net/uqtubq5c/3/
Других решений пока нет …