Node.js で REST API を使用して Word ドキュメントを編集する

Word 文書をクラウド上でプログラム的に簡単に編集できます。ドキュメントのコンテンツを追加、編集したり、Node.js アプリケーションでプログラムによって Word ドキュメントのテキスト書式設定を適用したりできます。この記事では、Node.js の REST API を使用して Word ドキュメントを編集する方法に焦点を当てます。

この記事では次のトピックについて説明します。

ドキュメント エディター REST API および Node.js SDK

DOCX ファイルの編集には GroupDocs.Editor Cloud の Node.js SDK API を使用します。 Word、Excel スプレッドシート、PowerPoint, TXT、HTML、XML など、サポートされている形式のドキュメントをプログラムで編集できます。 API を使用すると、ドキュメントを HTML に変換して編集したり、ドキュメントの編集後に同じ外観を保ったまま元の形式に変換したりすることもできます。また、クラウド API の ドキュメント エディター ファミリ メンバー として、.NET、Java、PHP、Ruby、Android、および Python SDK も提供します。

コンソールで次のコマンドを使用して、GroupDocs.Editor Cloud を Node.js アプリケーションにインストールできます。

npm install groupdocs-editor-cloud

上記の手順に従う前に、ダッシュボード からクライアント ID とシークレットを取得してください。 ID とシークレットを取得したら、以下に示すようにコードを追加します。

global.clientId = "112f0f38-9dae-42d5-b4fc-cc84ae644972";
global.clientSecret = "16ad3fe0bdc39c910f57d2fd48a5d618";
global.myStorage = "";

const configuration = new groupdocs_editor_cloud.Configuration(clientId, clientSecret);
configuration.apiBaseUrl = "https://api.groupdocs.cloud";

Node.js で REST API を使用して Word ドキュメントを編集する

以下の簡単な手順に従って、Word 文書を編集できます。

  1. Wordファイルをクラウドにアップロード
  2. 編集 Node.jsを使用したWord文書
  3. ダウンロード 更新されたファイル

ドキュメントをアップロードする

まず、以下のコード例を使用して、Word ドキュメント (DOCX) をクラウドにアップロードします。

// FileApi を構築する
let fileApi = groupdocs_editor_cloud.FileApi.fromConfig(configuration);
let resourcesFolder = 'C:\\Files\\sample.docx';

fs.readFile(resourcesFolder, (err, fileStream) => {
  let request = new groupdocs_editor_cloud.UploadFileRequest("sample.docx", fileStream, myStorage);
  fileApi.uploadFile(request);
});

その結果、アップロードされた DOCX ファイルは、クラウド上のダッシュボードの ファイル セクション で利用できるようになります。

Node.jsを使用してWord文書を編集する

Word 文書をプログラムで編集するには、以下の手順に従ってください。

  • FileAPIEditAPI のインスタンスを作成します。
  • FileInfo に入力ファイルのパスを指定します。
  • WordProcessingLoadOptions の作成
  • LoadOptions を使用して LoadRequest を作成する
  • EditAPIのload()メソッドでファイルをロードします。
  • ロードされたファイルを使用して DownloadFileRequest を作成する
  • FileAPIのdownloadFile()メソッドを使用してHTMLドキュメントをダウンロードします。
  • ダウンロードしたHTMLドキュメントを編集する
  • UploadFileRequest の作成
  • FileAPI の uploadFile() メソッドを使用して HTML をアップロードして戻す
  • DOCX に保存する WordProcessingSaveOptions を提供します
  • SaveOptions を使用して SaveRequest を作成する
  • Edit API の save() メソッドを使用して HTML を DOCX に保存します。

次のコード スニペットは、Node.js の REST API を使用して Word ドキュメントを編集する方法を示しています。

// APIの初期化
let editApi = groupdocs_editor_cloud.EditApi.fromKeys(clientId, clientSecret);
let fileApi = groupdocs_editor_cloud.FileApi.fromKeys(clientId, clientSecret);

// 入力ファイル      
let fileInfo = new groupdocs_editor_cloud.FileInfo();
fileInfo.filePath = "Sample.docx";

// ロードオプションを定義する
let loadOptions = new groupdocs_editor_cloud.WordProcessingLoadOptions();
loadOptions.fileInfo = fileInfo;
loadOptions.outputPath = "output";

// ロードリクエストを作成する
let loadRequest = new groupdocs_editor_cloud.LoadRequest(loadOptions);
let loadResult = await editApi.load(loadRequest);

// HTMLドキュメントをダウンロードする
let downloadRequest = new groupdocs_editor_cloud.DownloadFileRequest(loadResult.htmlPath);
let buf = await fileApi.downloadFile(downloadRequest);
let htmlString = buf.toString("utf-8");

// 何かを編集して...
htmlString = htmlString.replace("Title of the document", "Welcome");
htmlString = htmlString.replace("Subtitle #1", "Hello world");

// HTMLをストレージにアップロードして戻す
let uploadRequest = new groupdocs_editor_cloud.UploadFileRequest(loadResult.htmlPath, new Buffer.from(htmlString, "utf-8"));
await fileApi.uploadFile(uploadRequest);

// HTMLをdocxに保存し直す
let saveOptions = new groupdocs_editor_cloud.WordProcessingSaveOptions();
saveOptions.fileInfo = fileInfo;
saveOptions.outputPath = "output/edited.docx";
saveOptions.htmlPath = loadResult.htmlPath;
saveOptions.resourcesPath = loadResult.resourcesPath;

// 保存リクエストを作成する
let saveRequest = new groupdocs_editor_cloud.SaveRequest(saveOptions);
let saveResult = await editApi.save(saveRequest);
console.log("Document edited: " + saveResult.path);
Node.js の REST API を使用して Word ドキュメントを編集する

Node.js の REST API を使用して Word ドキュメントを編集する

更新されたファイルをダウンロードする

上記のコードサンプルは、編集した Word 文書 (DOCX) をクラウド上に保存します。次のコードサンプルを使用してダウンロードできます。

// APIを初期化する
var fileApi = groupdocs_editor_cloud.FileApi.fromConfig(configuration);

// ファイルのダウンロードリクエストを作成する
let request = new groupdocs_editor_cloud.DownloadFileRequest("output/edited.docx", myStorage);

// ダウンロードファイル
let response = await fileApi.downloadFile(request);

// 画像ファイルを作業ディレクトリに保存する
fs.writeFile("C:\\Files\\edited.docx", response, "binary", function (err) { });

Node.jsを使用してWord文書に表を追加する

以下の手順に従って、プログラムを使用して Word 文書に表を追加できます。

  • FileAPIEditAPI のインスタンスを作成します。
  • FileInfo に入力ファイルのパスを指定します。
  • WordProcessingLoadOptions の作成
  • LoadOptions を使用して LoadRequest を作成する
  • EditAPIのload()メソッドでファイルをロードします。
  • ロードされたファイルを使用して DownloadFileRequest を作成する
  • FileAPI の downloadFile() メソッドを使用して HTML ドキュメントをダウンロードします。
  • ダウンロードしたHTMLドキュメントを編集する and add a table
  • UploadFileRequest の作成
  • FileAPI の uploadFile() メソッドを使用して HTML をアップロードして戻します。
  • DOCX に保存する WordProcessingSaveOptions を提供します
  • SaveOptions を使用して SaveRequest を作成する
  • EditAPI の save() メソッドを使用して HTML を DOCX に保存します。

次のコード スニペットは、Node.js の REST API を使用して Word ドキュメントに表を追加する方法を示しています。

// APIの初期化
let editApi = groupdocs_editor_cloud.EditApi.fromKeys(clientId, clientSecret);
let fileApi = groupdocs_editor_cloud.FileApi.fromKeys(clientId, clientSecret);

// 入力ファイル      
let fileInfo = new groupdocs_editor_cloud.FileInfo();
fileInfo.filePath = "Sample.docx";

// ロードオプションを定義する
let loadOptions = new groupdocs_editor_cloud.WordProcessingLoadOptions();
loadOptions.fileInfo = fileInfo;
loadOptions.outputPath = "output";

// ロードリクエストを作成する
let loadRequest = new groupdocs_editor_cloud.LoadRequest(loadOptions);
let loadResult = await editApi.load(loadRequest);

// HTMLドキュメントをダウンロードする
let downloadRequest = new groupdocs_editor_cloud.DownloadFileRequest(loadResult.htmlPath);
let buf = await fileApi.downloadFile(downloadRequest);
let htmlString = buf.toString("utf-8");

// テーブルを追加
htmlString = htmlString.replace("left-aligned.", "left-aligned. <br/><table style=\"width: 100%;background-color: #dddddd;\">"
		+ "<caption style=\"font-weight:bold;\"> Persons List</caption>"
		+ "<tr><th>First Name</th><th>Last Name</th><th>Age</th></tr>"
		+ "<tr><td>Jill</td><td>Smith</td><td>50</td></tr>"
		+ "<tr><td>Eve</td><td>Jackson</td><td>94</td></tr>"
		+ "</table>");

// HTMLをストレージにアップロードして戻す
let uploadRequest = new groupdocs_editor_cloud.UploadFileRequest(loadResult.htmlPath, new Buffer.from(htmlString, "utf-8"));
await fileApi.uploadFile(uploadRequest);

// HTMLをdocxに保存し直す
let saveOptions = new groupdocs_editor_cloud.WordProcessingSaveOptions();
saveOptions.fileInfo = fileInfo;
saveOptions.outputPath = "output/edited.docx";
saveOptions.htmlPath = loadResult.htmlPath;
saveOptions.resourcesPath = loadResult.resourcesPath;

// 保存リクエストを作成する
let saveRequest = new groupdocs_editor_cloud.SaveRequest(saveOptions);
let saveResult = await editApi.save(saveRequest);
console.log("Document edited: " + saveResult.path);
Node.jsを使用してWord文書に表を追加する

Node.jsを使用してWord文書に表を追加する

Node.js を使用して Word 文書に画像を挿入する

以下の手順に従って、プログラムを使用して Word 文書に画像を挿入できます。

  • FileAPIEditAPI のインスタンスを作成します。
  • FileInfo に入力ファイルのパスを指定します。
  • WordProcessingLoadOptions の作成
  • LoadOptions を使用して LoadRequest を作成する
  • EditAPIのload()メソッドでファイルをロードします。
  • ロードされたファイルを使用して DownloadFileRequest を作成する
  • FileAPI の downloadFile() メソッドを使用して HTML ドキュメントをダウンロードします。
  • ダウンロードしたHTMLドキュメントを編集する and insert an image
  • UploadFileRequest の作成
  • FileAPI の uploadFile() メソッドを使用して HTML をアップロードして戻します。
  • DOCX に保存する WordProcessingSaveOptions を提供します
  • SaveOptions を使用して SaveRequest を作成する
  • EditAPI の save() メソッドを使用して HTML を DOCX に保存します。

次のコード スニペットは、Node.js の REST API を使用して Word ドキュメントに画像を挿入する方法を示しています。

// APIの初期化
let editApi = groupdocs_editor_cloud.EditApi.fromKeys(clientId, clientSecret);
let fileApi = groupdocs_editor_cloud.FileApi.fromKeys(clientId, clientSecret);

// 入力ファイル   
let fileInfo = new groupdocs_editor_cloud.FileInfo();
fileInfo.filePath = "Sample.docx";

// ロードオプションを定義する
let loadOptions = new groupdocs_editor_cloud.WordProcessingLoadOptions();
loadOptions.fileInfo = fileInfo;
loadOptions.outputPath = "output";

// ロードリクエストを作成する
let loadRequest = new groupdocs_editor_cloud.LoadRequest(loadOptions);
let loadResult = await editApi.load(loadRequest);

// HTMLドキュメントをダウンロードする
let downloadRequest = new groupdocs_editor_cloud.DownloadFileRequest(loadResult.htmlPath);
let buf = await fileApi.downloadFile(downloadRequest);
let htmlString = buf.toString("utf-8");

// 画像を挿入する
htmlString = htmlString.replace("left-aligned.", "left-aligned. <br/> <img src=\"sample.png\" alt=\"signatures\" style=\"width: 128px; height: 128px;\">");

// HTMLをストレージにアップロードして戻す
let uploadRequest = new groupdocs_editor_cloud.UploadFileRequest(loadResult.htmlPath, new Buffer.from(htmlString, "utf-8"));
await fileApi.uploadFile(uploadRequest);

// HTMLをdocxに保存し直す
let saveOptions = new groupdocs_editor_cloud.WordProcessingSaveOptions();
saveOptions.fileInfo = fileInfo;
saveOptions.outputPath = "output/edited.docx";
saveOptions.htmlPath = loadResult.htmlPath;
saveOptions.resourcesPath = loadResult.resourcesPath;

// 保存リクエストを作成する
let saveRequest = new groupdocs_editor_cloud.SaveRequest(saveOptions);
let saveResult = await editApi.save(saveRequest);
console.log("Document edited: " + saveResult.path);
Node.js を使用して Word 文書に画像を挿入する

Node.js を使用して Word 文書に画像を挿入する

オンラインで試す

上記の API を使用して開発された、次の無料のオンライン DOCX 編集ツールをお試しください。 https://products.groupdocs.app/editor/docx

結論

この記事では、クラウド上で Word 文書を編集する方法を学習しました。 Node.js の REST API を使用して DOCX ファイルにテーブルを追加する方法も学習しました。さらに、プログラムを使用して Word 文書に画像を挿入する方法を学習しました。この記事では、プログラムによって DOCX ファイルをクラウドにアップロードし、編集したファイルをクラウドからダウンロードする方法についても説明しました。 GroupDocs.Editor Cloud API の詳細については、ドキュメント を使用して学習できます。また、API リファレンス セクションも提供されており、ブラウザーを通じて直接 API を視覚化して操作できるようになります。不明な点がある場合は、フォーラムでお気軽にお問い合わせください。

関連項目