我正在以 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)
感谢您的帮助。
本答案末尾有一个独立的示例,但这是您的两个问题:
\n解决此问题的最佳方法是在此处使用“excel”而不是“csv”:
\ndom: \'Bfrtip\',\n"buttons": [\n \'excel\'\n]\nRun Code Online (Sandbox Code Playgroud)\n这将确保 Excel 单元格格式为“数字”而不是“常规”。
\n\n我不知道使用 CSV 导出选项时自动控制 Excel 单元格格式的方法 - 除非您准备将 CSV 保存为文本文件,然后导入 Excel 并在导入过程中对其进行格式化(手动过程) )。
\n出现此问题的原因有多种,其中许多超出了数据表的范围,因此以下内容可能对您没有帮助,但是......
\n确保您的 HTML 页面的head标记内包含以下内容:
<meta charset="UTF-8">\nRun Code Online (Sandbox Code Playgroud)\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>\nRun Code Online (Sandbox Code Playgroud)\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"\nRun Code Online (Sandbox Code Playgroud)\n数据就是您需要的方式 - 只是 Excel 在打开 csv 文件时会对如何格式化数据做出各种假设。
\n| 归档时间: |
|
| 查看次数: |
22517 次 |
| 最近记录: |