我想用application/vnd.openxmlformats- officedocument.spreadsheetml.sheet
用PHP打开一个xlsx
文件,因为COM在服务器上不起作用。
有人知道如何做到这一点?我可以用application/vnd.openxmlformats-officedocument.spreadsheetml.sheet打开一个xlsx文件吗?
评论部分是我想替换的部分。我这样做是为了强制excel来计算公式中的值,因为phpexcel没有得到正确的值。
如果有办法配置COM在服务器上运行,请让我知道。
这是我的代码:
$inputFileName = 'FORMATO PEDIDO.xlsx';
$inputFileType = PHPExcel_IOFactory::identify($inputFileName);
$objPHPexcel = PHPExcel_IOFactory::load($inputFileName);
$objWorksheet = $objPHPexcel->setActiveSheetIndex(0);
$objWorksheet = $objPHPexcel->getActiveSheet();
$claves = $_POST['claves'];
$checked = $_POST['productos'];
$cantidades = $_POST['pallet'];
$id_sucursal_seleccionada = $_POST['recibe_sucursal'];
$sql_query = mysql_query("SELECT * FROM sucursal WHERE Id_Sucursal = '$id_sucursal_seleccionada'");
$sql_array = mysql_fetch_array($sql_query);
$nombre_sucursal = $sql_array['Nombre'];
$i=0;
$j=22;
foreach($claves as $clave_producto)
{
if($checked[$i])
{
$cantidad = $cantidades[$i];
$objWorksheet->getCell('B'.$j)->setValue($clave_producto);
$objWorksheet->getCell('F'.$j)->setValue($cantidad);
$j++;
}
$i++;
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPexcel,$inputFileType);
$objWriter->setPreCalculateFormulas(false);
$objWriter->save($inputFileName);
$workbook = "C:/Documents and Settings/sosam1/My Documents/Dropbox/htdocs/Merdiz/inventarios/FORMATO PEDIDO.xlsx";
$ex = new COM("Excel.application") or Die ("Did not connect");
$wkb = $ex->application->Workbooks->Open($workbook) or Die ("Did not open");
$ex->Application->ActiveWorkbook->Save();
$ex->application->ActiveWorkbook->Close("False");
$objPHPexcel = PHPExcel_IOFactory::load($inputFileName);
$objWorksheet = $objPHPexcel->setActiveSheetIndex(0);
$objWorksheet = $objPHPexcel->getActiveSheet();
什么是与PHPExcel做计算(你可以禁用的问题,因为你做)...你需要从PHP Excel中没有提供的MS Excel本身? PHPExcel生成的值不正确?您引用了“注释部分”;但我在代码中看不到任何评论;为什么你将PHPExcel和COM结合起来?请解释你的问题! – 2013-04-12 06:29:34