如何设置csv文件列的大小?

时间:2013-03-05 12:39:28

标签: php excel

我想在csv文件中设置每列的大小,我想设置列的字段大小,我不知道在哪里可以设置代码来设置大小?任何人都可以帮助它,将提前感谢。

这是我的代码

function export($result)
{   
    Configure::write('debug',0);
    $filename = "excel.".csv";
    $csv_file = fopen('php://output', 'w');
    header('Content-Type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename="'.$filename.'"');    

    // The column headings of  .csv file
    $header_row1 = array(   
                        "Last Name",
                        "First Name",
                        "Middle Name",
                        );

    $header_row =   array_merge($header_row1,$header_row2);
    fputcsv($csv_file,$header_row,',','"');

    // Array indexes correspond to the field names in your db table(s)
    if (!isset($result['Post']['User'])) {
        $row1 = array(
            $result['Post']['prefix_name'],
            $result['Post']['first_name'],
            $result['Post']['middle_name'],
            $result['Post']['last_name'],
        );
    }
    else {
            $row1 = array(
            $result['Post']['prefix_name'],
            $result['Post']['first_name'],
            $result['Post']['middle_name'],
            $result['Post']['last_name'],
        );
    }

    $row = array_merge($row1,$row2);

    unset($row2);
    fputcsv($csv_file,$row,',','"');
}

    fclose($csv_file);
    exit;
}

3 个答案:

答案 0 :(得分:16)

你不能...... CSV文件没有任何格式,包括列大小。

如果要控制列宽,则需要将数据写入支持列宽的格式,例如BIFF(.xls)或OfficeOpenXML(.xlsx)或OASIS Open Document Format(.ods)或Gnumeric或其他电子表格。

答案 1 :(得分:4)

没有办法做到这一点 CSV代表coma separated values

  

逗号分隔值(CSV)文件存储表格数据(数字和数字)   文本)以纯文本形式。纯文本表示文件是序列   字符,没有必须解释的数据,如   二进制数。 CSV文件包含任意数量的记录,   由某种断线分开;每条记录都包含字段,   由其他字符或字符串分隔,最常见的是文字   逗号或标签。通常,所有记录都具有相同的序列   字段。

简洁明了。
CSV太原始了。
你有没有试过用普通的文本编辑器打开CSV文件? 在这种情况下你需要XLS。

答案 2 :(得分:2)

据我所知,您无法在CSV中设置列大小,因为绝对没有关于演示文稿布局的信息。 CSV是逗号分隔值。

打开文件的应用程序的最佳行为是设置列宽以适合数据。

如果要管理演示文稿布局,则应生成可以使用Excel打开的html内容(在示例中)。在此类内容中,您可以设置一些属性,例如width="400" ...