我有一个显示员工数据的引导表,包括具有给定格式的工资单ID: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>
该表正确显示,但是当我使用TableExport插件将其导出到excel时,它会像这样 exported results
正如你所看到的,插件以某种方式将其视为带小数的数字,这正是我所避免的。我试过评论parseNumber函数,这可能是tableExport js文件中的原因,但是结果总是出现相同的
我做错了什么?
PS:我不希望在导出文件后进行格式化,我希望它按原样导出数据。
答案 0 :(得分:0)
您可以使用
...
<td data-tableexport-msonumberformat="\@">123.450</td>
...
在创建tableExport.js
Excel导出时,mso-number-format: "\@"
将使用TD
作为HTML
样式。这导致将单元格格式化为Text
。
实施例: http://jsfiddle.net/uqtubq5c/1/
您也可以使用
...
<td data-tableexport-msonumberformat="0.000">123.450</td>
...
这导致Excel中的数字格式0.000
。因此,单元格内容仍然是一个数字,并且可以进一步用于计算。在计算中使用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行(行&gt; 0)向上的第三列(col == 2)将获得style="mso-number-format:#\,##0\.00"
,从第2行(行&gt; 0)向上的第四列(col == 3)将获得style="mso-number-format:\@"
。 @
格式为Text
。