php - DataTables,将数据表导出到列值有逗号的 CSV 文件
问题描述
我在我的 laravel 应用程序中使用数据表,有 2 列(id、地址)想要将内容导出到 csv 文件。但是,地址列中的某些值中包含逗号。因此,当用户打开 csv 文件时,该值被拆分为列。例如数据表如下所示:
id, address 1, Chicago, IL
但是,当用户在 excel 中打开 csv 文件时:A、B、C id、desc 1、Chicago、IL
所以值:“芝加哥,伊利诺伊州”在 Excel 中打开时被分成 2 列,B 和 C。我期望只填充excel列A和B(id,地址)。
我可以做些什么来转义逗号或格式化单元格,以便当用户打开文件时只有 2 列填充并且地址列具有值:伊利诺伊州芝加哥
我试图在任何地方找到解决方案但没有运气所以请不要重复这个问题提前谢谢。
<table class="table" id="sample_1">
<thead>
<tr>
<th class="all export"> id </th>
<th class="all export">address</th>
</tr>
</thead>
<tbody>
@foreach ($data as $item)
<tr>
<td >{{ $item->id}} </td>
<td >{{ $item->address}} </td>
</tr>
@endforeach
</tbody>
</table>
TableDatatablesEditable = function() {
var e = function() {
var e = $("#sample_1"),
t = e.dataTable({
dom: "Bfrtip",
buttons: [{
extend: "print",
className: "btn dark btn-outline"
}, {
extend: "pdf",
className: "btn green btn-outline"
}, {
extend: 'csvHtml5',
exportOptions: {
columns: ['.export'],
},
className: "btn-outline"
}],
language: {
lengthMenu: " _MENU_ records"
},
columnDefs: [{
orderable: !0,
targets: [0]
}, {
searchable: !0,
targets: [0]
}],
order: [
[1, "desc"]
],
lengthMenu: [
[5, 10, 15, 20, -1],
[5, 10, 15, 20, "All"]
],
pageLength: 20,
dom: "<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>"
});
解决方案
作为一种解决方法,您可以在表格内用引号打印该值。引号内的文本不会被 Excel 分成列。
前任
<td >"{{ $item->id}}"</td>
推荐阅读
- angular - 获取 Firebase 分析事件数据
- android - 如何获取蓝牙的RSSI
- c++ - 经批准的 C++20 概念语法
- json - 将 JSON 从 S3 加载到 Redshift
- cloudkit - CloudKit 对使用 Web 服务 API 的用户记录更新的错误请求
- css - 使用 react-bootstrap 自定义卡片背景
- mysql - 如何解决访问被拒绝;您需要(至少一个)在 mysql 中执行此操作的 SUPER 权限
- mysql - 使用子查询结果作为 FROM 选择
- java - 如何在运行时中断或终止 Java 线程
- algorithm - 检测无向图中的循环