我正在使用PHPExcel库做一些工作。我今天遇到了第一个问题。从Excel中读取/写入的工作很好,但之后我将开始从Excel工作表中取出东西,然后进入Mongo。我基本上从Excel中读取数组,然后尝试将该数组保存到Mongo中$collection->insert($array);
从PHPExcel获取文本而不是RTF /对象阅读
我得到一个异常,告诉我它不能插入带有零字符键的任何东西。我在我的阵列上做了一个var_dum()
,看看它在哪里得到一个空白键,这是转储产生的。
array(10)
{
["um"]=> string(2) "EA"
["desc"]=> string(37) "FRAME WELDMENT, NITRATE REMOVAL TANKS"
["vws_num"]=> NULL
["part_num"]=> string(10) "SD-0408-01"
["manufac"]=> object(PHPExcel_RichText)#665 (1)
{
["_richTextElements" : "PHPExcel_RichText" : private]=> array(3)
{
[0]=> object(PHPExcel_RichText_TextElement)#184 (1)
{
["_text":"PHPExcel_RichText_TextElement":private]=> string(23) "VEOLIA WATER SOLUTIONS "
}
[1]=> object(PHPExcel_RichText_Run)#179 (2)
{
["_font":"PHPExcel_RichText_Run":private]=> object(PHPExcel_Style_Font)#183 (12)
{
["_name":"PHPExcel_Style_Font":private]=> string(5) "SWGDT"
["_size":"PHPExcel_Style_Font":private]=> string(2) "10"
["_bold":"PHPExcel_Style_Font":private]=> bool(false)
["_italic":"PHPExcel_Style_Font":private]=> bool(false)
["_superScript":"PHPExcel_Style_Font":private]=> bool(false)
["_subScript":"PHPExcel_Style_Font":private]=> bool(false)
["_underline":"PHPExcel_Style_Font":private]=> string(4) "none"
["_strikethrough":"PHPExcel_Style_Font":private]=> bool(false)
["_color":"PHPExcel_Style_Font":private]=> object(PHPExcel_Style_Color)#186 (4)
{
["_argb":"PHPExcel_Style_Color":private]=> string(8) "FF000000"
["_isSupervisor":"PHPExcel_Style_Color":private]=> bool(false)
["_parent":"PHPExcel_Style_Color":private]=> NULL
["_parentPropertyName":"PHPExcel_Style_Color":private]=> NULL
}
["_parentPropertyName":"PHPExcel_Style_Font":private]=> NULL
["_isSupervisor":"PHPExcel_Style_Font":private]=> bool(false)
["_parent":"PHPExcel_Style_Font":private]=> NULL
}
["_text":"PHPExcel_RichText_TextElement":private]=> string(1) " "
}
[2]=> object(PHPExcel_RichText_Run)#182 (2)
{
["_font":"PHPExcel_RichText_Run":private]=> object(PHPExcel_Style_Font)#189 (12)
{
["_name":"PHPExcel_Style_Font":private]=> string(14) "Century Gothic"
["_size":"PHPExcel_Style_Font":private]=> string(2) "10"
["_bold":"PHPExcel_Style_Font":private]=> bool(false)
["_italic":"PHPExcel_Style_Font":private]=> bool(false)
["_superScript":"PHPExcel_Style_Font":private]=> bool(false)
["_subScript":"PHPExcel_Style_Font":private]=> bool(false)
["_underline":"PHPExcel_Style_Font":private]=> string(4) "none"
["_strikethrough":"PHPExcel_Style_Font":private]=> bool(false)
["_color":"PHPExcel_Style_Font":private]=> object(PHPExcel_Style_Color)#188 (4)
{
["_argb":"PHPExcel_Style_Color":private]=> string(8) "FF000000"
["_isSupervisor":"PHPExcel_Style_Color":private]=> bool(false)
["_parent":"PHPExcel_Style_Color":private]=> NULL
["_parentPropertyName":"PHPExcel_Style_Color":private]=> NULL
}
["_parentPropertyName":"PHPExcel_Style_Font":private]=> NULL
["_isSupervisor":"PHPExcel_Style_Font":private]=> bool(false)
["_parent":"PHPExcel_Style_Font":private]=> NULL
}
["_text":"PHPExcel_RichText_TextElement":private]=> string(14) "& TECHNOLOGIES"
}
}
}
["vendor"]=> NULL
["unit_price"]=> NULL
["list_price"]=> NULL
["multiplier"]=> NULL
["times_req"]=> float(1)
}
为什么我"manufac"
键拿着一个疯狂的疯狂寻找PHPExcel对象?我检索每个单元格的内容
$array[$rowIndex][$col] = $cell->getCalculatedValue();
我知道Excel工作表的特定的细胞中有一个新的行字符,会是这样吗?或者这是否告诉我在该单元格上放置了一些奇怪的格式?
我只是从这个小区想要的文本值,就像所有其他的人给了我......
在此先感谢您的帮助!
我相信这个曾经工作提取细胞的纯文本内容,但有在1.7.8中的错误 我在这里提交了一个错误报告 - http://phpexcel.codeplex.com/workitem/19540 – nathansizemore 2013-03-28 16:13:05
如果getCell() - > getValue()曾经返回纯文本而不是富文本对象,那么这是一个错误,这意味着无法在orde中获得现有的富文本r修改它而不是简单地将其转换为纯文本。返回富文本对象是正确的行为。但是,getCalculatedValue应返回明文 – 2013-03-28 16:19:53
修改getCalculatedValue()方法以返回richtext对象的文本内容而不是对象 - 推送到版本1.7.9的github存储库准备就绪 – 2013-03-29 11:11:12