停止 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;
});

但是我不知道如何使用上面的代码。

您可以通过两种方式识别处理程序中的单元格。

  1. 在每个单元格上添加属性(例如,<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>

  1. 使用正则表达式解析已知格式的数据并使用它来识别单元格

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 演示。