停止 table2excel 在导出 excel 时考虑像 50:10 这样的比率值
Stop table2excel from considering ratio value like 50:10 as time in exported excel
我有一个 html table,其中一些列值作为字符串以及比率数字 (50:10, 60:30)
我的问题是当我使用 table2excel 导出它时,一些比率值被认为是时间。
见下图:
我的出口代码:
$("#pat_inj_table").table2excel({
name: "Report",
filename: name,
});
我在 table2excel 文档中找到了这段代码,我认为它对解决我的问题很有用:
Table2Excel.extend((cell, cellText) => {
// {HTMLTableCellElement} cell - The current cell.
// {string} cellText - The inner text of the current cell.
// cell should be described by this type handler
if (selector) return {
t: ...,
v: ...,
};
// skip and run next handler
return null;
});
但是我不知道如何使用上面的代码。
您可以通过两种方式识别处理程序中的单元格。
- 在每个单元格上添加属性(例如,
<td type="string">10:20</td>
)并根据该属性识别数据
Table2Excel.extend((cell, cellText) => {
return $(cell).attr('type') == 'string' ? {
t: 's',
v: cellText
} : null;
});
var table2excel = new Table2Excel({
defaultFileName: "myFile"
});
table2excel.export($(".table"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://rusty1s.github.io/table2excel/dist/table2excel.js"></script>
<table class="table" excel-name="excel-name">
<thead>
<tr>
<th>#</th>
<th>Column heading</th>
<th>Column heading</th>
<th>Column heading</th>
</tr>
</thead>
<tbody>
<tr class="active">
<td>1</td>
<td type="string">10:20</td>
<td>Column content</td>
<td>Column content</td>
</tr>
</tbody>
</table>
- 使用正则表达式解析已知格式的数据并使用它来识别单元格
Table2Excel.extend((cell, cellText) => {
return cellText && /\d+:\d+/gi.test(cellText) ? { t: 's', v: cellText } : null;
});
var table2excel = new Table2Excel({
defaultFileName: "myFile"
});
table2excel.export($(".table"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://rusty1s.github.io/table2excel/dist/table2excel.js"></script>
<table class="table" excel-name="excel-name">
<thead>
<tr>
<th>#</th>
<th>Column heading</th>
<th>Column heading</th>
<th>Column heading</th>
</tr>
</thead>
<tbody>
<tr class="active">
<td>1</td>
<td type="string">10:20</td>
<td>Column content</td>
<td>Column content</td>
</tr>
</tbody>
</table>
看看 this jsFiddle 演示。
我有一个 html table,其中一些列值作为字符串以及比率数字 (50:10, 60:30)
我的问题是当我使用 table2excel 导出它时,一些比率值被认为是时间。
见下图:
我的出口代码:
$("#pat_inj_table").table2excel({
name: "Report",
filename: name,
});
我在 table2excel 文档中找到了这段代码,我认为它对解决我的问题很有用:
Table2Excel.extend((cell, cellText) => {
// {HTMLTableCellElement} cell - The current cell.
// {string} cellText - The inner text of the current cell.
// cell should be described by this type handler
if (selector) return {
t: ...,
v: ...,
};
// skip and run next handler
return null;
});
但是我不知道如何使用上面的代码。
您可以通过两种方式识别处理程序中的单元格。
- 在每个单元格上添加属性(例如,
<td type="string">10:20</td>
)并根据该属性识别数据
Table2Excel.extend((cell, cellText) => {
return $(cell).attr('type') == 'string' ? {
t: 's',
v: cellText
} : null;
});
var table2excel = new Table2Excel({
defaultFileName: "myFile"
});
table2excel.export($(".table"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://rusty1s.github.io/table2excel/dist/table2excel.js"></script>
<table class="table" excel-name="excel-name">
<thead>
<tr>
<th>#</th>
<th>Column heading</th>
<th>Column heading</th>
<th>Column heading</th>
</tr>
</thead>
<tbody>
<tr class="active">
<td>1</td>
<td type="string">10:20</td>
<td>Column content</td>
<td>Column content</td>
</tr>
</tbody>
</table>
- 使用正则表达式解析已知格式的数据并使用它来识别单元格
Table2Excel.extend((cell, cellText) => {
return cellText && /\d+:\d+/gi.test(cellText) ? { t: 's', v: cellText } : null;
});
var table2excel = new Table2Excel({
defaultFileName: "myFile"
});
table2excel.export($(".table"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://rusty1s.github.io/table2excel/dist/table2excel.js"></script>
<table class="table" excel-name="excel-name">
<thead>
<tr>
<th>#</th>
<th>Column heading</th>
<th>Column heading</th>
<th>Column heading</th>
</tr>
</thead>
<tbody>
<tr class="active">
<td>1</td>
<td type="string">10:20</td>
<td>Column content</td>
<td>Column content</td>
</tr>
</tbody>
</table>
看看 this jsFiddle 演示。