【发布时间】:2014-12-02 04:41:07
【问题描述】:
我正在创建一个 CSV 导出文件,并且有一个在 Excel 或 Numbers 中打开时会不断格式化的日期字符串。如何强制数据为文本。
Stop Excel from automatically converting certain text values to dates
我似乎无法在 PHP 中应用上述解决方案。
if(strlen($date) == 10){
// 12-24-1983
$date = explode('-',$date);
$m = $date[0];
$d = $date[1];
$Y = $date[2];
$date = $Y.'-'.$d.'-'.$m.' 00:00:00';
}
else {
// 2014-08-07 21:04:19
$date = explode(' ',$date);
$datePiece = $date[0];
$timePiece = $date[1];
$datePiece = explode('-',$datePiece);
$Y = $datePiece[0];
$m = $datePiece[1];
$d = $datePiece[2];
$date = $Y.'-'.$d.'-'.$m.' '.$timePiece;
}
return "$date";
【问题讨论】:
-
那么不要使用 csv。使用 PHPExcel 并构建一个适当的 excel 文件,您可以在其中指定单元格格式。
-
是的,您似乎无法将上述解决方案应用于 PHP。从您给出的示例中确实如此:它实际上表明根本没有应用任何内容。但是,要在 stackoverflow 上提问,您需要问一个编程问题。无法应用您在本网站上找到的一些代码示例而不分享您的编程问题的其他详细信息(例如,您在理解中遗漏的内容)很可能不符合编程问题的条件。所以它充其量还不清楚,但它本身甚至不适合编程问答网站。尝试通过编辑来改进您的问题。
-
如果您不想使用 PHPExcel,请使用 Libre Office 打开 CSV 文件并将其另存为 XLSX。 Microsoft Excel 拒绝以有用的方式处理 CSV 数据(如果您购买了他们的一份支持合同,他们可能会帮助您,但不能这么说)。
标签: php excel datetime csv export-to-csv