16

我想在 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;
}
4

3 回答 3

24

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

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

于 2013-03-05T12:43:12.837 回答
5

没有办法做到这一点。
CSV 代表逗号分隔值

逗号分隔值 (CSV) 文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着文件是一个字符序列,没有数据需要被解释为二进制数。CSV 文件由任意数量的记录组成,由某种换行符分隔;每条记录由字段组成,由其他字符或字符串分隔,最常见的是文字逗号或制表符。通常,所有记录都有相同的字段序列。

简短而清晰的定义。
CSV 太原始了。
你有没有尝试过用普通的文本编辑器打开 CSV 文件?
在这种情况下,您需要 XLS。

于 2013-03-05T13:01:14.467 回答
3

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

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

如果您想管理您的演示文稿布局,您应该生成一个可以用 Excel 打开的 html 内容(例如)。在这样的内容中,您将能够设置一些属性,例如width="400"...

于 2013-03-05T12:43:54.740 回答