我正在试图弄清楚如何将连字符列表插入到像这样的phpexcel的单元格中:
-Value A
-Value B
我尝试了以下代码段:
// input value can be something else
$value = "-ValueA\n-Value B";
if (strpos($value, '-') === 0 || strpos($value, '=') === 0) {
$value = '\'' . $value;
$cell->setValueExplicit($value, \PHPExcel_Cell_DataType::TYPE_FORMULA);
} else {
$cell->setValueExplicit($value, \PHPExcel_Cell_DataType::TYPE_STRING);
}
$cell->getStyle()->getAlignment()->setWrapText(true);
但是使用此代码,phpexcel会在字符串之前添加等号(=)。
当我跳过部分以逃避连字号( - )时,excel显示单元格中的叛逆者:
'-Value A
-Value B
直到我点击进出单元格。
如何正确排除连字符?我正在使用PHPExcel 1.8.1和PHP 5.6.8。创建xlsx文件并使用Excel 2007打开它。
答案 0 :(得分:0)
您只需要一个包含换行符的字符串....但不要尝试将其设置为公式....它不是公式
$value = "-ValueA\n-Value B\n-Value C";
$objPHPExcel->getActiveSheet()
->setCellValue('A10', $value);
$objPHPExcel->getActiveSheet()
->getRowDimension(10)
->setRowHeight(-1);
$objPHPExcel->getActiveSheet()
->getStyle('A10')
->getAlignment()
->setWrapText(true);
修改强>
如果您希望在单元格值前加上引号以避免MS Excel尝试将值视为公式,请不要在实际值前加上引号,而是使用quotePrefix
样式设置:
$objPHPExcel->getActiveSheet()
->getStyle('A10')
->setQuotePrefix(true);
仅Excel2007(.xlsx
)