如果我需要使用php阅读器读取类似=“01”的excel文件,我该怎么办?

时间:2012-09-17 08:02:50

标签: php excel

如果我需要使用php reader读取带有=“01”的数字的excel文件,我该怎么办?

他们不会读取=“变量”这样的数据。

我应该使用任何其他Excel阅读器吗?

我知道如何使用“mso-number-format”下载这样的文件来处理它。

请帮帮我。

require_once '../../lib/reader.php';
$data = new Spreadsheet_Excel_Reader();

$data->setOutputEncoding('utf8');
$data->read('data/'.$_FILES["FILE1"]["name"]);
error_reporting(E_ALL ^ E_NOTICE);


for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) {


            for ($j = 1; $j <= $data->sheets[0]['numCols']+1; $j++) {
        $strValue = addslashes(trim(strip_tags($data->sheets[0]['cells'][$i][$j]))); // addslashes , trim, strip_tags

        if ($j ==1) $a = $strValue; // 
        if ($j ==2) $b = $strValue; // 
        if ($j ==3) $c = $strValue; // 
    }

echo $a.$b.$c

1 个答案:

答案 0 :(得分:0)

如果您正在从Excel工作表中读取数字,那么它很可能被保存为比字符串更简单的数字速率。读取它并使用sprintf()或str_pad()进行格式化;或检查单元格的数字格式掩码并将其应用于您的号码。

修改

看起来有人正在捏造工作簿以使用公式,而不是将单元格值设置为字符串,或者应用格式掩码(不是特别明智)。

查看Spreadsheet_Excel_Reader(第1424-1429行)的代码,它处理读取导致字符串值的公式,它实际上并没有在单元格中设置字符串值(这就是为什么你得到一个空单元格值)....这显然是库中的一个错误。要么你需要解决这个问题;或者切换到可以实际读取给出字符串结果值的公式的Excel库;或者修复原始电子表格,使其将'001'值设置为字符串或格式蒙版数而不是公式。