昨天提到一个任务说,导出报表有问题,就去看了下,页面在之前也看过,所以知道问题在哪,只是那个时候没做修改!昨天一改发现有两个问题困扰!
第一个问题,数据重写问题。在用Excel类的writeString 和writeNumber 函数时,对某一单元格写入了数据,如:
//实例化Excel写数据类
$workbook = new Spreadsheet_Excel_Writer();
//添加Excel 页
$worksheet = & $workbook->addWorksheet("sheet first");
//显示格式
$arr_format = & $workbook->addFormat(array('Align' => 'center',
'FontFamily' => '宋体',
'Border' => 0,
'Size' => 10));
//写字符串
$worksheet->writestring(2,0, ' ',$arr_format);
当这条语句的下面也有一条对此单元格写数据时,
$worksheet->writestring(2,0, ' test string ',$arr_format);
当导出数据到Excel时,打开此Excel表格,就会弹出提示:“文件错误,数据可能丢失”。
第二个问题,关于提供默认值的问题,与数据重写相关。其实与第一个问题一样的,如果能够对
单元格的数据重写,那么这个问题就迎刃而解,不成为问题。这里主要就是覆盖以前的数据有问
题,因为有些情况能达到覆盖效果,而有些也不能对前面的进行覆盖。
这两个问题可能还跟计算机的Excel软件或其他有关,共测试了六台机器上的导出效果,有两台机
器导出没有任何问题,其他四台机器都会报出 “文件错误,数据可能丢失”的错误,而且数据
也不能覆盖重写。至于说是Excel版本,这个也不能算原因,两台没有问题的机器,装的也是
Excel2003(其他两三台机器也是Excel2003),所以这个问题很是郁闷,找不到根本原因。
如果是数组数据循环,而每个数组内的元素又不确定,只能在写入数据时,给数组加上默认,以
避免Excel数据重写报错的情况