Редактировать документы с помощью REST API в PHP.

Мы можем программно добавлять, редактировать или удалять содержимое существующих документов Word, электронных таблиц Excel или текстовых файлов в облаке. Мы также можем применять форматирование текста в документах с помощью PHP без установки каких-либо внешних приложений. В этой статье мы узнаем, как редактировать документы с помощью REST API в PHP.

В этой статье должны быть раскрыты следующие темы:

Редактор документов REST API и PHP SDK

Мы будем использовать PHP SDK GroupDocs.Editor Cloud API для изменения файлов DOCX, XLSX и TXT. Он позволяет редактировать документы поддерживаемых форматов. Пожалуйста, установите его с помощью следующей команды в консоли:

composer require groupdocscloud/groupdocs-editor-cloud

После установки используйте autoload Composers, чтобы использовать SDK, как показано ниже:

require_once('vendor/autoload.php');

Пожалуйста, получите свой идентификатор клиента и секрет на панели управления, прежде чем выполнять указанные шаги. Получив свой идентификатор и секрет, добавьте код, как показано ниже:

// В этом примере кода показано, как добавить идентификатор клиента и секрет в код.
static $ClientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
static $ClientSecret = 'b377c36cfa28fa69960ebac6b6e36421';
static $ApiBaseUrl = 'https://api.groupdocs.cloud';
static $MyStorage = '';

// инициализация конфигурации
$configuration = new GroupDocs\Editor\Configuration();

// Настройка конфигураций
$configuration->setAppSid(CommonUtils::$ClientId);
$configuration->setAppKey(CommonUtils::$ClientSecret);
$configuration->setApiBaseUrl(CommonUtils::$ApiBaseUrl);

Редактировать документы Word с помощью REST API в PHP

Мы можем редактировать документы Word, выполнив простые шаги, указанные ниже:

  1. Загрузить файл DOCX в облако
  2. Изменить загруженный документ Word
  3. Скачать отредактированный файл

Загрузить документ

Во-первых, мы загрузим файл DOCX в облако, используя пример кода, приведенный ниже:

// В этом примере кода показано, как загрузить файл DOCX в облако.
// Инициализировать API
$apiInstance = new GroupDocs\Editor\FileApi($configuration);

// Путь к входному файлу
$file = "C:\\Files\\Editor\\sample.docx";

// Запрос на загрузку файла
$request = new GroupDocs\Editor\Model\Requests\uploadFileRequest("sample.docx", $file, self::$MyStorage, null);

// Загрузить файл
$response = $apiInstance->uploadFile($request);

В результате загруженный файл DOCX будет доступен в разделе файлов панели инструментов в облаке.

Редактировать документ Word в PHP

Теперь мы отредактируем содержимое загруженного файла DOCX, выполнив следующие действия:

  • Во-первых, создайте экземпляры FileApi и EditApi.
  • Затем укажите путь к загруженному файлу DOCX.
  • Затем загрузите файл в виде HTML-документа.
  • Затем прочитайте загруженный файл HTML как строку.
  • Затем отредактируйте HTML и сохраните обновленный HTML-документ.
  • После этого загрузите обновленный HTML-файл.
  • Наконец, сохраните HTML обратно в DOCX, используя метод EditApi.save().

В следующем примере кода показано, как редактировать документ Word с помощью REST API в PHP.

// В этом примере кода показано, как редактировать документ Word.
// Создайте необходимые экземпляры API
$editApi = new GroupDocs\Editor\EditApi($configuration);
$fileApi = new GroupDocs\Editor\FileApi($configuration);

// Загрузите загруженный файл DOCX в редактируемое состояние.
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("sample.docx");

// Установите пароль, если он защищен паролем
// $fileInfo->setPassword("пароль");

// Определить параметры загрузки
$loadOptions = new Model\WordProcessingLoadOptions();
$loadOptions->setFileInfo($fileInfo);
$loadOptions->setOutputPath("");
$loadResult = $editApi->load(new Requests\loadRequest($loadOptions));

// Скачать HTML-документ
$htmlFile = $fileApi->downloadFile(new Requests\downloadFileRequest($loadResult->getHtmlPath()));
$html = file_get_contents($htmlFile->getRealPath());

// Редактировать текст
$html = str_replace("Title of the document", "Welcome", $html);
$html = str_replace("Subtitle #1", "This is Subtitle", $html);

// Загрузить HTML обратно в хранилище
file_put_contents($htmlFile->getRealPath(), $html);
$uploadRequest = new Requests\uploadFileRequest($loadResult->getHtmlPath(), $htmlFile->getRealPath());
$fileApi->uploadFile($uploadRequest);

// Сохранить HTML обратно в DOCX
$saveOptions = new Model\WordProcessingSaveOptions();
$saveOptions->setFileInfo($fileInfo);
$saveOptions->setOutputPath("edited.docx");
$saveOptions->setHtmlPath($loadResult->getHtmlPath());
$saveOptions->setResourcesPath($loadResult->getResourcesPath());
$saveResult = $editApi->save(new Requests\saveRequest($saveOptions));

// Сделанный.
echo "Document edited: " . $saveResult->getPath();
Редактируйте документы Word с помощью REST API в PHP.

Редактируйте документ Word с помощью REST API в PHP.

Загрузите обновленный файл

Приведенный выше пример кода сохранит отредактированный файл Word (DOCX) в облаке. Его можно загрузить с помощью следующего примера кода:

// В этом примере кода показано, как загрузить файл DOCX из облака.
// Инициализировать API
$apiInstance = new GroupDocs\Editor\FileApi($configuration);

// Запрос на скачивание файла
$request = new GroupDocs\Editor\Model\Requests\DownloadFileRequest("edited.docx", self::$MyStorage, null);

// Загрузить файл
$response = $apiInstance->downloadFile($request);

Изменение электронных таблиц Excel с помощью REST API в PHP

Мы можем редактировать содержимое листа Excel, выполнив шаги, упомянутые ранее. Однако нам просто нужно указать путь к загруженному файлу XLSX.

В следующем примере кода показано, как редактировать данные листа Excel с помощью REST API в PHP.

// В этом примере кода показано, как редактировать лист Excel
// Создайте необходимые экземпляры API
$editApi = new GroupDocs\Editor\EditApi($configuration);
$fileApi = new GroupDocs\Editor\FileApi($configuration);

// Загрузите загруженный файл XLSX в редактируемое состояние.
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("sample.xlsx"); 

// Определить параметры загрузки
$loadOptions = new Model\SpreadsheetLoadOptions();
$loadOptions->setFileInfo($fileInfo);
$loadOptions->setOutputPath("");
$loadOptions->setWorksheetIndex(0);
$loadResult = $editApi->load(new Requests\loadRequest($loadOptions));

// Скачать HTML-документ
$htmlFile = $fileApi->downloadFile(new Requests\downloadFileRequest($loadResult->getHtmlPath()));
$html = file_get_contents($htmlFile->getRealPath());

// Отредактируйте что-нибудь...
$html = str_replace("Region", "Country", $html);
$html = str_replace("Europe", "France", $html);
$html = str_replace("Asia", "China", $html);
$html = str_replace("South America", "Argentina", $html);

// Загрузить HTML обратно в хранилище
file_put_contents($htmlFile->getRealPath(), $html);
$uploadRequest = new Requests\uploadFileRequest($loadResult->getHtmlPath(), $htmlFile->getRealPath());
$fileApi->uploadFile($uploadRequest);

// Сохранить HTML обратно в XLSX
$saveOptions = new Model\SpreadsheetSaveOptions();
$saveOptions->setFileInfo($fileInfo);
$saveOptions->setOutputPath("edited.xlsx");
$saveOptions->setHtmlPath($loadResult->getHtmlPath());
$saveOptions->setResourcesPath($loadResult->getResourcesPath());
$saveResult = $editApi->save(new Requests\saveRequest($saveOptions));

// Сделанный.
echo "Document edited: " . $saveResult->getPath();
Измените электронные таблицы Excel с помощью REST API в PHP.

Измените электронную таблицу Excel с помощью REST API в PHP.

Обновите текстовые файлы с помощью REST API в PHP

Мы также можем обновить содержимое текстового файла, выполнив шаги, упомянутые ранее. Однако нам просто нужно указать путь к загруженному файлу TXT.

В следующем примере кода показано, как редактировать текстовый файл с помощью REST API в PHP.

// В этом примере кода показано, как редактировать текстовый файл
// Создайте необходимые экземпляры API
$editApi = new GroupDocs\Editor\EditApi($configuration);
$fileApi = new GroupDocs\Editor\FileApi($configuration);

// Загрузите загруженный файл TXT в редактируемое состояние.
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("sample.txt");        
$loadOptions = new Model\TextLoadOptions();
$loadOptions->setFileInfo($fileInfo);
$loadOptions->setOutputPath("");
$loadResult = $editApi->load(new Requests\loadRequest($loadOptions));

// Скачать HTML-документ
$htmlFile = $fileApi->downloadFile(new Requests\downloadFileRequest($loadResult->getHtmlPath()));
$html = file_get_contents($htmlFile->getRealPath());

// Редактировать текст
$html = str_replace("Title of the document", "Welcome", $html);
$html = str_replace("Subtitle #1", "This is Subtitle", $html);

// Загрузить HTML обратно в хранилище
file_put_contents($htmlFile->getRealPath(), $html);
$uploadRequest = new Requests\uploadFileRequest($loadResult->getHtmlPath(), $htmlFile->getRealPath());
$fileApi->uploadFile($uploadRequest);

// Сохранить HTML обратно в TXT
$saveOptions = new Model\TextSaveOptions();
$saveOptions->setFileInfo($fileInfo);
$saveOptions->setOutputPath("edited.txt");
$saveOptions->setHtmlPath($loadResult->getHtmlPath());
$saveOptions->setResourcesPath($loadResult->getResourcesPath());
$saveResult = $editApi->save(new Requests\saveRequest($saveOptions));

// Сделанный.
echo "Document edited: " . $saveResult->getPath();
Обновите текстовые файлы с помощью REST API в PHP.

Обновите текстовый файл с помощью REST API в PHP.

Попробуйте онлайн

Пожалуйста, попробуйте следующие бесплатные онлайн-инструменты для редактирования документов, разработанные с использованием вышеуказанного API.

Заключение

В этой статье мы узнали, как:

  • редактировать или изменять содержимое файлов Word, Excel или Text в PHP;
  • загрузить файл DOCX в облако;
  • загрузить обновленный файл Word из облака.

Кроме того, вы можете узнать больше о GroupDocs.Editor Cloud API, воспользовавшись документацией. Мы также предоставляем раздел Справочник по API, который позволяет визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также