我正在尝试使用PHP-ExcelReader从excel文件导入数据并遇到问题。该文件由工作中的程序生成。 (虽然这是一个非正式的项目,我只是一个狂热者)
当我读取文件时,数据很奇怪。一列中通常为4个字符的单元格被截断为2.大多数其他列在单元格被截断时似乎没有一致性,除了整个文本从不存在。如果我使用Libreoffice编辑一个单元格,保存并导入相同的文件,一切都显示正常。代码是这样的:
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP1251');
$data->read($filename);
echo "<table>\n";
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
echo "<tr>";
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
echo "<td>";
if (isset($data->sheets[0]['cells'][$i][$j])) {
echo $data->sheets[0]['cells'][$i][$j];
}
echo "</td>";
}
echo "</tr>\n";
}
echo "</table>\n";
这个想法是这个文件每天至少会由多个用户生成一次,因此让他们保存文件,编辑文件并在上传前重新保存是不现实的。您对我如何导入此文件有任何建议吗?
答案 0 :(得分:0)
我和你有同样的麻烦。我的xls文件是从SSRS下载的。 如果我在下载后直接阅读,字符串和数字数据将被检索为奇怪的数据。 例如:
excel 1,040,809,656.00中的数据 但Spreadsheet_Excel_Reader检索[$ -1,040,809,6561,040,809,6561,040,809,6561,040,809,6561,040,809,6561,040,809,6561,040,809,656] 1,040,809,6561,040,809,6561,040,809,6561,040,809,656.1,040,809,6561, 040809656
我的临时解决方案是打开文件并保存(不进行编辑)。