数据表导出Excel

C.R*_*amp 2 datatables

我正在以 csv 格式导出数据表。当我用 Excel 打开文件时,我遇到了大数字(大约 20 位数字)的问题。我对特殊字符也有疑问。我猜这是一个格式问题。但我不知道如何纠正这个问题。

我的Js文件中的代码:

dom: 'Bfrtip',
    buttons: [
        {
            extend: 'csv',
            text: 'csv',
            fieldSeparator: ';' // with ';' we can export the file in csv and each column is in one column. Without ';' everything is in one column
        },
        'pdf',
        'print'
    ]
Run Code Online (Sandbox Code Playgroud)

问题的图像: 在此输入图像描述

感谢您的帮助。

and*_*mes 5

本答案末尾有一个独立的示例,但这是您的两个问题:

\n

大数

\n

解决此问题的最佳方法是在此处使用“excel”而不是“csv”:

\n
dom: \'Bfrtip\',\n"buttons": [\n  \'excel\'\n]\n
Run Code Online (Sandbox Code Playgroud)\n

这将确保 Excel 单元格格式为“数字”而不是“常规”。

\n

在此输入图像描述

\n

我不知道使用 CSV 导出选项时自动控制 Excel 单元格格式的方法 - 除非您准备将 CSV 保存为文本文件,然后导入 Excel 并在导入过程中对其进行格式化(手动过程) )。

\n

重音字符

\n

出现此问题的原因有多种,其中许多超出了数据表的范围,因此以下内容可能对您没有帮助,但是......

\n

确保您的 HTML 页面的head标记内包含以下内容:

\n
<meta charset="UTF-8">\n
Run Code Online (Sandbox Code Playgroud)\n

这足以让我的演示正常运行(见下文)。例如:

\n

在此输入图像描述

\n

然而,正如我所说,可能还有许多其他原因 - 例如,请参见此处

\n

完整示例

\n

将以下 HTML 粘贴到文本文件中(如果您使用的是 Windows,请使用 Notepad++,而不是记事本)。假设使用 Notepad++,请确保文件保存为 UTF-8 - 菜单 > 编码 > UTF-8。然后在任何浏览器中打开该文件。

\n

您不需要下面提供的所有 JS 导入(例如 PDF 导入);请随意删除多余的。(我有它们用于更完整的演示,但懒得删除它们。)

\n
<!doctype html>\n<html lang="en">\n<head>\n  <meta charset="UTF-8">\n  <title>Export to Excel</title>\n  <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>\n  <script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>\n  <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css">\n  <link rel="stylesheet" type="text/css" href="https://datatables.net/media/css/site-examples.css">\n\n  <!-- buttons -->\n  <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.6.1/css/buttons.dataTables.min.css">\n  <script src="https://code.jquery.com/jquery-3.3.1.js"></script>\n  <script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>\n  <script src="https://cdn.datatables.net/buttons/1.6.1/js/dataTables.buttons.min.js"></script>\n  <script src="https://cdn.datatables.net/buttons/1.6.1/js/buttons.flash.min.js"></script>\n  <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>\n  <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>\n  <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>\n  <script src="https://cdn.datatables.net/buttons/1.6.1/js/buttons.html5.min.js"></script>\n  <script src="https://cdn.datatables.net/buttons/1.6.1/js/buttons.print.min.js"></script>\n\n</head>\n\n<body>\n\n<div style="margin: 20px;">\n\n<table id="example" class="display nowrap dataTable cell-border" style="width:100%">\n        <thead>\n            <tr>\n                <th>Name</th>\n                <th>Position</th>\n                <th>Office</th>\n                <th>Age</th>\n                <th>Start date</th>\n                <th>Salary</th>\n            </tr>\n        </thead>\n        <tbody>\n            <tr>\n                <td>Ad\xc3\xa9la\xc3\xafde Nixon</td>\n                <td>System Architect</td>\n                <td>Edinburgh</td>\n                <td>6123456789012345</td>\n                <td>2011/04/25</td>\n                <td>$320,800</td>\n            </tr>\n        </tbody>\n        <tfoot>\n            <tr>\n                <th>Name</th>\n                <th>Position</th>\n                <th>Office</th>\n                <th>Age</th>\n                <th>Start date</th>\n                <th>Salary</th>\n            </tr>\n        </tfoot>\n    </table>\n\n</div>\n\n<script type="text/javascript">\n\n  $(document).ready(function() {\n    $(\'#example\').DataTable({\n\n      dom: \'Bfrtip\',\n      "buttons": [\n        \'excel\'\n      ]\n    });\n  });\n\n</script>\n\n</body>\n
Run Code Online (Sandbox Code Playgroud)\n

关于 CSV 选项的注意事项

\n

如果您在按钮定义中使用“csv”而不是“excel”,并且在文本编辑器而不是 Excel 中打开生成的文件,您将看到以下数据:

\n
"Name","Position","Office","Age","Start date","Salary"\n"Ad\xc3\xa9la\xc3\xafde Nixon","System Architect","Edinburgh","6123456789012345","2011/04/25","$320,800"\n
Run Code Online (Sandbox Code Playgroud)\n

数据就是您需要的方式 - 只是 Excel 在打开 csv 文件时会对如何格式化数据做出各种假设。

\n