数据表,可将数据表导出到CSV文件,其中列值带有逗号

时间:2019-12-29 11:05:05

标签: php jquery laravel

我在laravel应用中使用数据表,其中有2列(标识,地址)想要将内容导出到csv文件中。但是,address列中的某些值中包含逗号。因此,当用户打开csv文件时,该值将分为几列。例如,数据表如下所示:

id,地址 1,伊利诺伊州芝加哥

但是,当用户在excel中打开csv文件时: A,B,C id,desc 1,伊利诺伊州芝加哥

因此,在Excel中打开时,“ IL,Chicago”的值将分为两列,B和C。 我原本只希望填充excel列A和B(id,地址)。

我可以做些什么来转义逗号或格式化单元格,以便当用户打开文件时,仅填充2列,而address列具有值: 伊利诺伊州芝加哥

我试图在各处找到解决方案,但是没有运气,所以请不要重复此问题 预先感谢。

<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>>"
            });

2 个答案:

答案 0 :(得分:0)

作为一种解决方法,您可以在表内的引号中打印值。用Excell不会将引号内的文本分成几列。

Ex

<td >"{{ $item->id}}"</td>

答案 1 :(得分:0)

看看文档-> https://datatables.net/reference/button/csvHtml5

您可以强制定界符为分号netstat -plnt Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN - tcp6 0 0 :::111 :::* LISTEN - tcp6 0 0 :::22 :::* LISTEN - 而不是;

,