Spreadsheet_Excel_Writer数据输出已损坏 [英] Spreadsheet_Excel_Writer data output is damaged

查看:214
本文介绍了Spreadsheet_Excel_Writer数据输出已损坏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用Spreadsheet_Excel_Writer来生成.xls文件,它工作正常,直到我必须处理大量的数据。在某些阶段,它只是写一些无意义的字符,并且退出填充某些列。但是有些列是直到最后的字段(通常是数字数据)



我不太确定xls文档的形成方式:逐行或col ...这也显然不是字符串中的错误,因为当我删除一些数据时,错误会进一步出现。



我认为我的所有代码都不需要

这里有一些要点

  $ filename ='file.xls'; 
$ workbook =&新的Spreadsheet_Excel_Writer();
$ workbook-> setVersion(8);
$ contents =& $ workbook-> addWorksheet(物流);
$ contents-> setInputEncoding('UTF-8');

$ workbook-> send($ filename);

//这里是我写数据的部分
$ contents-> write(0,0,'Field A');
$ contents-> write(0,1,'Field B');
$ contents-> write(0,2,'Field C');

$ ROW = 1;
foreach($ ordersArr as $ key => $ val){
$ contents-> write($ ROW,0,$ val ['a']);
$ contents-> write($ ROW,1,$ val ['b']);
$ contents-> write($ ROW,2,$ val ['c']);

$ ROW ++;
}
$ workbook-> close();


解决方案

我有同样的问题,我发现这个解决方案适用于我:



http://pear.php.net/bugs/bug.php?id=19284&edit=3



[2012-08 -08 17:12 UTC] identit(Vincent Dubourg)



解决方案是Root.php \ line 623中的更改:

  fwrite($ FILE,pack(V,1)); 

  fwrite($ FILE,pack(V,$ num_sb_blocks)); 

该文件是包OLE 1.0.0RC2(beta)中的pear / OLE / PPS / Root.php


I use Spreadsheet_Excel_Writer to generate .xls file and it works fine until I have to deal with a large amount of data. On certain stage it just writes some nonsense chars and quits filling certain columns. However some columns are field up to the end (generally numeric data)

I'm not quite sure how the xls document is formed: row by row, or col by col... Also it is obviously not an error in a string, because when i cut out some data, the error appears a little bit further.

I think there is no need in all of my code

here are some essentials

$filename = 'file.xls';
$workbook = & new Spreadsheet_Excel_Writer(); 
$workbook->setVersion(8); 
$contents =& $workbook->addWorksheet('Logistics');
$contents->setInputEncoding('UTF-8');

$workbook->send($filename);

//here is the part where I write data down
$contents->write(0, 0, 'Field A');
$contents->write(0, 1, 'Field B');
$contents->write(0, 2, 'Field C');

$ROW=1;
foreach($ordersArr as $key=>$val){
  $contents->write($ROW, 0, $val['a']);
  $contents->write($ROW, 1, $val['b']);
  $contents->write($ROW, 2, $val['c']);

  $ROW++;
}
$workbook->close(); 

解决方案

I had the same problem, I found this solution that works for me:

http://pear.php.net/bugs/bug.php?id=19284&edit=3

[2012-08-08 17:12 UTC] identit (Vincent Dubourg)

The solution is change in Root.php \ line 623 :

fwrite($FILE, pack("V", 1));

to

fwrite($FILE, pack("V", $num_sb_blocks));

the file is pear/OLE/PPS/Root.php in package OLE 1.0.0RC2 (beta)

这篇关于Spreadsheet_Excel_Writer数据输出已损坏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆