私はCSVをWebアプリケーションからエクスポートしていますが、私は1/1または1/6のような列の形式を持っています...そしてExcelはそれを変換します1.1.2017として1.6.2017。Excelは1/1の日付(DD.MM.YYYY)を変換します
これは、輸出のための私の関数である。
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がうんざりしていることを発見しました。そして、CSV形式のデータを扱うときは特に難しいです。悲しいことに、あなたが記述している問題は、実際にはExcelのCSV処理であまり深刻なバグの1つです。他にも多く*悪い*があることに注意してください。 – Simba
はい、MS Excelは、CSVファイルをインポートするときに値が意味することを「第2の推測」しようとしますが、期待どおりに動作するとは限りません。 CSVは、MS Excelを使用してファイルを表示する予定のときに使用するのに最適なフォーマットではありません。 –