【发布时间】:2016-06-07 08:50:42
【问题描述】:
我正在使用 spreadsheet-reader 读取一些 .xls 和 .xlsx 并将它们转换为 .csv。
这是我的简化代码:
require_once(dirname(__FILE__) . '/../ext/spreadsheet-reader/SpreadsheetReader.php');
require_once(dirname(__FILE__) . '/../ext/spreadsheet-reader/php-excel-reader/excel_reader2.php');
$pCsvPath = Config::$generatedCSVPath . "/" . str_replace(array(".xlsx", ".xls"), ".csv", $pFileName);
$csv = fopen($pCsvPath, "w");
$pReader = new SpreadsheetReader($pFilePath);
// Read only the first sheet
$pSheets = $pReader -> Sheets();
$pReader -> ChangeSheet(0);
foreach ($pReader as $row)
{
fputcsv($csv, $row);
}
一切正常,但我遇到了日期问题。
.xls/.xlsx 文件中有一个列,格式如下:2015-02-10
当我将它们写入.csv 时,此列的输出为2015201520152015-FebFeb-TueTue。
如何使用我在上面发布的代码将其转换为.csv,但将日期保持为正确的格式 (2015-02-10)?
提前致谢。
编辑:如果我手动将日期从 2015-01-01 更改为 01-01-2015(将年份放在末尾),日期将被正确解析。如果无法将日期保存为2015-01-01,我如何使用我上面发布的代码将该行更改为正确的格式(最后一年)?
我知道我可以手动解析日期,但不能使用上面的代码,因为当我调用 $pReader = new SpreadsheetReader($pFilePath) 函数时会加载所有内容,并且无法仅操作日期。 p>
【问题讨论】:
-
嗨,Avion 你有解决办法吗?
-
不,@Kuttoozz,对不起:(