我需要打开一个现有的xlsx文件,其中包含文本框(使用预定义选项创建的文本框,如圆形,正方形等),我需要在这些对象后面编写(它们是透明的)。
下面的代码可以很好地完成所有操作,除了下载没有框的新文件。
if(file_exists("app/file.xlsx")){
$objTpl = PHPExcel_IOFactory::load("app/file.xlsx");
$objTpl->setActiveSheetIndex(1);
$objTpl->getActiveSheet()->setCellValue('A1', 'x');
$objTpl->getActiveSheet()->setCellValue('A2', 'y');
$objTpl->getActiveSheet()->setCellValue('A3', 'z');
$filename = 'new_file.xlsx';
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objTpl, 'Excel2007');
ob_end_clean();
$ret = $objWriter->save('php://output');
exit;
}
答案 0 :(得分:0)
你可以通过COM dotnet php模块
来做到这一点只需打开xlsx文件:
$excel = new COM("Excel.Application") or die ("Could not initialise Object.");
$excel->Visible = 1;
$excel->DisplayAlerts = 0;
$Workbook = $excel->Workbooks->Open($file) or die("ERROR: Unable to open " . $file . "!\r\n");
$Worksheet = $Workbook->ActiveSheet;
从此处开始更改您的文件,然后使用saveas函数。它的全部+ - 在microsoft的开发人员文档中有详细记录: https://msdn.microsoft.com/EN-US/library/office/ff198122.aspx