首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导出到csv格式问题

导出到csv格式问题
EN

Stack Overflow用户
提问于 2013-05-06 00:54:17
回答 1查看 222关注 0票数 0

我正在尝试将一些数据导出到csv文件中,我已经将数据导入该文件,这是我的代码:

*如果代码不好,请原谅我,我从来没有做过这样的事情,这是我能让它工作的唯一方法。

代码语言:javascript
复制
    /* CSV Export - Create Row */
    $csv_row_content .= $userdata->id.',';
    $csv_row_content .= $userdata->firstname.' '.$userdata->lastname;
    $csv_row_content .= ','.$split_date[2].'-'.$split_date[1].'-'.$split_date[0].',';
    $csv_row_content .= $sale->name;
        if($sale->optionlabel):
            $csv_row_content .= ' ('.$sale->optionlabel.')';
        endif;
    $csv_row_content .= ',';
    $csv_row_content .= $sale->status.',';
    $csv_row_content .= number_format($sale->unitprice, 2, '.', '');
    $csv_row_content .= "\r\n";

    $data_array[] = $csv_row_content;

    $csv_file = fopen('../wp-content/plugins/data-export/export_doc.csv', 'w');
    foreach ($data_array as $single_line)
        {
    fputcsv($csv_file,split(',',$single_line));
        }
    fclose($csv_file);

    /* Clear Array */
    unset($data_array);
    $data_array = array();

它是工作的,除了我在某些项目上的引号有问题

代码语言:javascript
复制
    303,"User Name",12-02-2013,"College Sweater (Black)",,"20.00
    207","User Name",30-01-2013,"College Sweater (Black)",,"20.00
    "

所以我不确定第一个和最后一个项目是怎么回事,一个引号有时会出现,另一些则不会。请注意id为207的行上的奇怪引号&两行的最后一个值。另外,在第三行有一个新的begin行,只有一个引号。

另外,在其他一些项目上,该函数将项目的名称拆分为两个项目。例如:

代码语言:javascript
复制
    207","User Name",30-01-2013,"College ","Sweater (Black)",,"22.73

所以很明显我在这里的某个地方走错了路,如果有人能帮助我的话,我真的很想学习这种事情应该如何做的正确方法,查看了很多php.net文档,但很多时候我发现这种资源令人难以置信地不堪重负,这就是一个这样的场合。

如果有人能为我指明正确的方向,我将不胜感激。我更愿意理解这一点,而不仅仅是复制和粘贴解决方案。

谢谢,弗兰克

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-06 01:07:57

您将手动创建CSV字符串并将其拆分,然后使用fputcsv将其重新组合在一起。试着这样做:

代码语言:javascript
复制
$row = array(
    $userdata->id,
    $userdata->firstname . ' ' . $userdata->lastname,
    $split_date[2] . '-' . $split_date[1] . '-' . $split_date[0],
    $sale->name . ($sale->optionlabel ? $sale->optionlabel : ''),
    $sale->status,
    number_format($sale->unitprice, 2, '.', '')
);

$data[] = $row;

$csv_file = fopen('../wp-content/plugins/data-export/export_doc.csv', 'w');

foreach ($data as $line) {
    fputcsv($csv_file, $line);
}
fclose($csv_file);

这将创建一个包含所有字段的数组,该数组可以传递给fputcsv,它负责封闭和分隔字段以及行结束。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16386860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档