Ответы пользователя по тегу Word
  • Шаблон документа в docx/xlsx + данные в xml средствами .NET, возможно ли и если да, то как?

    @exaller
    Делал подобную задачу на PHP, но принцип тот же.
    Берете шаблон .docx, открываете его как объект класса zip.
    Потом в этом архиве читаете нужный xml, и далее str_replase.

    Примерный код:
    //Папки Шаблона и загрузки нового файла
    $template = 'templates/auditor';
    $uploaddir = "documents/".$id;
    
    
    //Файлы Шаблона и новый файл
    $fileTemplate = $template .'/template.docx';
    $newfile = $uploaddir .'/auditor_'. $num.'.docx';
    
    //Создаём новую папку
    if( !is_dir($uploaddir) ) mkdir( $uploaddir, 0755, true );
    
    //Копируем файл
    copy($fileTemplate, $newfile);
    
    $zip = new ZipArchive;
    
    if ($zip->open($newfile) === TRUE) {
    	$handle = fopen( $template ."/document.xml", "r");
    	$content = fread($handle, filesize($template ."/document.xml"));
    	fclose($handle);
    	$content = str_replace("{customer_r}", $auditor, $content);
    	$content = str_replace("{num}", $data['Statement']['num'], $content);
    
    	$zip->deleteName('word/document.xml');
    	$zip->addFromString('word/document.xml',$content);
    	$zip->close();
    }else{
    	echo "error";
    }
    Ответ написан
    Комментировать