Php Excel将1/1转换为日期(DD.MM.YYYY)
我正在从web应用程序导出CSV,我有一个列格式,例如1/1或1/6。。。Excel将其转换为1.1.2017。或2017年6月1日 这是我的导出功能:Php Excel将1/1转换为日期(DD.MM.YYYY),php,excel,Php,Excel,我正在从web应用程序导出CSV,我有一个列格式,例如1/1或1/6。。。Excel将其转换为1.1.2017。或2017年6月1日 这是我的导出功能: public function exportCSVPrint($id) { $tablePrint = DB::connection('mysql2')->table('mc_schaltdaten_print')->select('s_magazin', 'datum', 's_ausgabe', 's_a
public function exportCSVPrint($id)
{
$tablePrint = DB::connection('mysql2')->table('mc_schaltdaten_print')->select('s_magazin', 'datum', 's_ausgabe', 's_ausrichtung', 's_jahrgang', 's_format', 's_seite', 's_seiten', 'brutto', 'pzn')->where('spotid', $id)->get();
$csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject());
$header = [Lang::get('language.magazine'), Lang::get('language.date'), Lang::get('language.ausgabeVersion'), Lang::get('language.seite'), Lang::get('language.seiten'), 'Format', Lang::get('language.ausrichtung'), Lang::get('language.anzeigenPreis')];
$csv->setDelimiter(';');
$csv->insertOne($header);
foreach ($tablePrint as $t) {
$rows = [
[$t->s_magazin, $t->datum, $t->s_ausgabe, $t->s_seite, $t->s_seiten, $t->s_format, $t->s_ausrichtung, $t->brutto],
];
$csv->insertAll($rows);
}
$csv->output($id . '.csv');
}
我怎样才能得到原始的1/1格式,而不是日期格式?很烦人,不是吗
Excel“helpfully”假设您在键入类似a/b
的内容时键入了一个日期,并且适当地默认了年份
如果在字符串前面加上单引号字符
”
,则可以保留原始文本。您刚刚发现Excel很糟糕,在处理CSV格式的数据时,它尤其糟糕。遗憾的是,您所描述的问题实际上是Excel的CSV处理中不太严重的错误之一。请注意,还有其他几个更糟糕。是的,MS Excel在导入csv文件时会尝试“二次猜测”值的含义,但它并不总是按预期工作。这就是为什么当您计划使用MS Excel查看文件时,CSV不是最好的格式;D如何在数组中插入引号,因为在我的例子中,$t->s_format
是数组成员。