linux下使用Spreadsheet_Excel_Writer导出xls无法用excel2010打开问题求助!

「已注销」 2012-07-21 12:02:16
项目中需要导出数据到xls,原使用的php_excel,导出速度太慢,而且很占服务器资源,于是使用Spreadsheet_Excel_Writer导出数据到xls,配置如下:

Apache2.2
php5.2.17
OLE-1.0.0RC2
Spreadsheet_Excel_Writer-0.9.3

导出脚本如下:

require ("../plugin/spreadsheet/Excel/Writer.php");
$file_path=excel_file("".$file_name."_","xls");
$workbook = new Spreadsheet_Excel_Writer($file_path[2]);
$workbook->setCustomColor(20,146,208,80);
$workbook->setVersion(8);

$format_title_sty = & $workbook->addformat(array('Size'=>10,'Bold'=>1,'Border'=>1,'FgColor'=>20,'FontFamily'=>utf82gb("宋体")));
$format_cont_sty = & $workbook->addformat(array('Size'=>10,'Border'=>1,'FontFamily'=>utf82gb("宋体")));

$sheet_rows=40000;//单Sheet记录集个数
$sheet_id=0;
$i=0;
$sheet_i=0;

while($rs= mysqli_fetch_array($rows)){
$i++;
$sheet_i++;
$row_=$i%$sheet_rows;

if($row_==1){
if($row_counts_list<$sheet_rows+1){
$sheet_id="";
}else{
$sheet_id++;
}
$sheets =& $workbook->addWorksheet("".utf82gb($file_name.$sheet_id)."");

for ($f=0;$f<$field_count;$f++){
$sheets->writeString(0, $f,utf82gb($fields[$f]->name), $format_title_sty);
}
$sheet_i=1;
//$sheets->setRow(0,15);
}

for ($k=0;$k<$field_count;$k++){
$sheets->writeString($sheet_i,$k,utf82gb($rs[$k]),$format_cont_sty);
//$sheets->setRow($sheet_i,15);
}
}
$workbook->close();

在windows下导出文件一切正常,可使用2003、2007、2010、WPS编辑打开,但在linux(centos5.2)下导出的xls文件却只能使用wps打开了,使用excel2010打开时提示“ 在XX中发现不可读取的内容,是否恢复此工作薄的内容? ”,然后就是一片空白了!


请问有谁碰到过这个问题么?是怎么解决的啊?知道的麻烦告知下,多谢 多谢!
...全文
187 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
thirteen101 2013-07-10
  • 打赏
  • 举报
回复
我也遇到了这问题,感谢sea267的自问自答,真的是郁闷的吐血啊!~ 去年pear就有的bug了,到现在还是没修好,安装RC2还是一样会出错。 http://pear.php.net/bugs/bug.php?id=19284
「已注销」 2012-07-30
  • 打赏
  • 举报
回复
搞了半天是 OLE版本问题,安装01版本的就可以了。郁闷的吐血啊!~

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧